Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in SQL by (6.1k points)

How to get an array containing all values of a certain field for all of my documents in a 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)" Result: [1,2,3,4,5]

Also, what if this field was an array?

{ "_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)" Result: [1,2,3,4,5,6,1,2,3,4]

Can this array be made unique? [1,2,3,4,5,6]

1 Answer

0 votes
by (11.7k points)

It will give you an array of unique values for that field:

db.collection.distinct('x')

Browse Categories

...