Arrays 使用查询MongoDb创建数组

Arrays 使用查询MongoDb创建数组,arrays,mongodb,Arrays,Mongodb,我有这个收藏 { "_id" : ObjectId("55555555ffffff000010200a"), "name" : "foo" } { "_id" : ObjectId("55555555ffffff000010200e"), "name" : "bar" } { "_id" : ObjectId("55555555ffffff000010200f"), "name" : "baz" } { "_id" :

我有这个收藏

{
    "_id" : ObjectId("55555555ffffff000010200a"),  
    "name" : "foo"
}

{
    "_id" : ObjectId("55555555ffffff000010200e"),
    "name" : "bar"
}

{
    "_id" : ObjectId("55555555ffffff000010200f"),    
    "name" : "baz"
}


{
    "_id" : ObjectId("55555555ffffff000010200b"),
    "name" : "biz"
}
我想要一个数组ID

是我干的

db.mycollection.find({}, {_id: 1})
返回

{
    "_id" : ObjectId("55555555ffffff000010200a")
}

{
    "_id" : ObjectId("55555555ffffff000010200e")
}

{
    "_id" : ObjectId("55555555ffffff000010200f")
}

{
    "_id" : ObjectId("55555555ffffff000010200b")
}

{
    "_id" : ObjectId("55555555ffffff000010200c")
}

{
    "_id" : ObjectId("55555555ffffff0000103111")
}
能给我一个数组吗?
id['55555555 FFFFFF 000010311','55555555 FFFFFF 000010311','5555555 FFFFFFFF 000010311','555555 FFFFFFFF 000010311']

选项1:如果子文档数组是可接受的,您只需附加到查找查询中即可

>db.test.find({},{u id:1}).toArray()
[
{
“_id”:ObjectId(“53270B12D11B9BF595F4270”)
},
{
“_id”:ObjectId(“53270b14d111b9bf595f4271”)
},
{
“_id”:ObjectId(“53270b16d111b9bf595f4272”)
}
]
选项2:另一个选项是使用

>db.test.aggregate([{$group:{{\u id:null,ids:{$push:$\u id}}},{$project:{{\u id:0,ids:1}}}]))
{
“结果”:[
{
“ID”:[
ObjectId(“53270b12d111b9bf595f4270”),
目标(“53270b14d111b9bf595f4271”),
目标(“53270b16d111b9bf595f4272”)
]
}
],
“好”:1
}
选项3:或者您可以在shell中使用以下命令:


使用distinct将单个列转换为数组:

db.mycollection.distinct('_id', function(err, list){
 //list is an array of ObjectId
});

我用另一个选项编辑了我的答案。检查这是否更适合你正在寻找的。
db.mycollection.distinct('_id', function(err, list){
 //list is an array of ObjectId
});