2011-12-08 7 views

Répondre

16

Vous ne pouvez pas utiliser expliquer avec le distinct selon cette mongodb jira ticket. Au lieu de cela, vous pouvez utiliser runCommand et vérifier les statistiques, ce qui est un peu semblable à explain()

db.runCommand({ distinct: 'test3',key:'id',query:{key:"value"}}) 

Dans le test3 de requête ci-dessus est le nom de la collection, la clé est un nom de domaine que vous souhaitez appliquer distincte et, enfin, si vous vouliez spécifier un les filtres utilisent une requête.

Vérifiez les échantillons

> db.runCommand({ distinct: 'items',key:'name',query:{offered:true}}) 
{ 
    "values" : [ 
     "test flat", 
     "Another aston martin", 
     "super luxury villa", 
     "Aston martin vanquish y for sale", 
     "Super car", 
     "Test item", 
     "another sports car", 
     "super car" 
    ], 
    "stats" : { 
     "n" : 8, 
     "nscanned" : 10, 
     "nscannedObjects" : 10, 
     "timems" : 45, 
     "cursor" : "BasicCursor" 
    }, 
    "ok" : 1 
} 
> db.runCommand({ distinct: 'items',key:'name',query:{offered:false}}) 
{ 
    "values" : [ 
     "yamaha", 
     "Test item" 
    ], 
    "stats" : { 
     "n" : 2, 
     "nscanned" : 10, 
     "nscannedObjects" : 10, 
     "timems" : 0, 
     "cursor" : "BasicCursor" 
    }, 
    "ok" : 1 
} 
+0

Merci! Cela fonctionne très bien pour moi. –

+5

Je ne suis pas en mesure de voir les statistiques, je viens de récupérer les valeurs et ok comme réponse. – genericuser

+0

@RyanHoffman: Doit être marqué comme la réponse acceptée, à mon humble avis. Merci! –