Comment puis-je obtenir un tableau contenant toutes les valeurs d'un certain champ pour tous mes documents dans une collection?
db.collection:
{ "_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]
Et 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]
db.collection.distinct('x')
devrait vous donner un tableau de valeurs uniques pour ce champ.
Remarque: Ma réponse est une fourchette de la réponse d'origine.
Avant tout "pouce en l'air" ici, "pouce en l'air" la réponse acceptée :).
db.collection.distinct("NameOfTheField")
Recherche les valeurs distinctes d'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/
Cela retournerait un tableau de documents, contenant juste sa valeur x ...
db.collection.find(
{ },
{ x: 1, y: 0, _id:0 }
)