2016-04-15 93 views
0

我有收集Collection1,我需要獲取像這樣的數組:[id1, id2, id3, ...](包含此集合中每個元素的_id的數組)。有沒有辦法用MongoDB工具來做這個查詢?謝謝!如何查詢MongoDB中的_id數組?

+1

只需使用[鮮明](https://docs.mongodb.org/manual/reference/method/db.collection.distinct/) - >'db.Collection1.distinct(「_ id」)' – chridam

回答

0

您必須對結果使用具有投影文檔投影只_idObjectId()

MongoDB Enterprise > db.users.find().pretty() 
{ 
     "_id" : ObjectId("570e1d465a44f125ef156791"), 
     "name" : "Ritesh Talreja", 
     "age" : 22, 
     "gender" : "M" 
} 
{ 
     "_id" : ObjectId("570e1e1d5a44f125ef156792"), 
     "name" : "Saloni", 
     "age" : 21, 
     "gender" : "F" 
} 
{ 
     "_id" : ObjectId("570e1e485a44f125ef156793"), 
     "name" : "abcd", 
     "age" : 22, 
     "gender" : "M" 
} 
{ 
     "_id" : ObjectId("570e28d45a44f125ef156794"), 
     "name" : "Saloni", 
     "age" : 21, 
     "gender" : "F" 
} 
{ "_id" : 123 } 
MongoDB Enterprise > db.users.find({}, {_id:1}).toArray() 
[ 
     { 
       "_id" : ObjectId("570e1d465a44f125ef156791") 
     }, 
     { 
       "_id" : ObjectId("570e1e1d5a44f125ef156792") 
     }, 
     { 
       "_id" : ObjectId("570e1e485a44f125ef156793") 
     }, 
     { 
       "_id" : ObjectId("570e28d45a44f125ef156794") 
     }, 
     { 
       "_id" : 123 
     } 
] 
MongoDB Enterprise > 

作爲此外,您還可以使用findcursor.toArray()功能:

MongoDB Enterprise > db.users.distinct("_id") 
[ 
     123, 
     ObjectId("570e1d465a44f125ef156791"), 
     ObjectId("570e1e1d5a44f125ef156792"), 
     ObjectId("570e1e485a44f125ef156793"), 
     ObjectId("570e28d45a44f125ef156794") 
] 
MongoDB Enterprise >