Liste Toutes les valeurs d'un certain champ dans mongodb

Comment obtenir un tableau contenant toutes les valeurs d'un certain champ pour tous mes documents dans une collection?

Db.recouvrement:

{ "_id" : ObjectId("51a7dc7b2cacf40b79990be6"), "x" : 1 }
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be7"), "x" : 2 }
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be8"), "x" : 3 }
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be9"), "x" : 4 }
{ "_id" : ObjectId("51a7dc7b2cacf40b79990bea"), "x" : 5 }

"db.collection.ListAllValuesForfield (x)" Résultat: [1,2,3,4,5]

Aussi, que faire si ce champ était un tableau?

{ "_id" : ObjectId("51a7dc7b2cacf40b79990be6"), "y" : [1,2] }
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be7"), "y" : [3,4] }
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be8"), "y" : [5,6] }
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be9"), "y" : [1,2] }
{ "_id" : ObjectId("51a7dc7b2cacf40b79990bea"), "y" : [3,4] }

"db.collection.ListAllValuesInArrayField (y)" Résultat: [1,2,3,4,5,6,1,2,3,4]

De plus, puis-je rendre ce tableau unique? [1,2,3,4,5,6]

21
demandé sur Community 2014-04-24 19:21:19

3 réponses

db.collection.distinct('x')

Devrait vous donner un tableau de valeurs uniques du champ.

40
répondu John Petrone 2014-04-24 15:44:25

Cela retournerait un tableau de docs, contenant juste sa valeur X...

db.collection.find(
    { },
    { x: 1, y: 0, _id:0 }
)
2
répondu lascort 2014-04-24 15:34:31

Avis: ma réponse est une fourchette de la réponse originale.

Avant tout " thumbs up "ici," thumbs up " la réponse acceptée:).


db.collection.distinct("NameOfTheField")

Trouve les valeurs distinctes pour un champ spécifié dans une seule collection ou vue et renvoie les résultats dans un tableau.

Référence: https://docs.mongodb.com/manual/reference/method/db.collection.distinct/

1
répondu ivanleoncz 2017-10-17 21:25:09