Javascript MongoDB.find()仅限ObjectId';它嵌入在一个数组中。

Javascript MongoDB.find()仅限ObjectId';它嵌入在一个数组中。,javascript,arrays,mongodb,Javascript,Arrays,Mongodb,我试图只从嵌入到projects数组中的一个特定文档中获取ObjectId。 基本上,我试图建立一个数据库,将有用户,每个用户将有自己的项目。 谢谢大家! db.users.find().pretty() { "_id" : ObjectId("5762c0cf2b9a78006373a684"), "name" : "seq", "pass" : "seq", "projects" : [ { "pid" : Object

我试图只从嵌入到projects数组中的一个特定文档中获取ObjectId。 基本上,我试图建立一个数据库,将有用户,每个用户将有自己的项目。 谢谢大家!

db.users.find().pretty()
{
    "_id" : ObjectId("5762c0cf2b9a78006373a684"),
    "name" : "seq",
    "pass" : "seq",
    "projects" : [
        {
            "pid" : ObjectId("5762c0ba2b9a78006373a682"),
            "name" : "aaa"
        },
        {
            "pid" : ObjectId("5762c0ba2b9a78006373a683"),
            "name" : "bbb"
        }
    ]
}
{
    "_id" : ObjectId("5762c28d2b9a78006373a687"),
    "name" : "leq",
    "pass" : "leq",
    "projects" : [
        {
            "pid" : ObjectId("5762c2892b9a78006373a685"),
            "name" : "ccc"
        },
        {
            "pid" : ObjectId("5762c2892b9a78006373a686"),
            "name" : "ddd"
        }
    ]
}

假设我们想要两个PID

{“pid”:ObjectId(“5762c0ba2b9a78006373a682”)}和 {“pid”:ObjectId(“5762c2892b9a78006373a686”),}

只有内部文件

因此,所需的响应应该如下所示:

{
    "_id" : ObjectId("5762c0ba2b9a78006373a682"),
    "name" : "aaa"
},{
    "_id" : ObjectId("5762c2892b9a78006373a686"),
    "name" : "ddd"
}
聚合框架可以操作文档,只匹配需要的文档,并按项目阶段转换内部结构:

var match = {
    $match : {
        "projects.pid" : {
            $in : [ObjectId("5762c0ba2b9a78006373a682"), 
                   ObjectId("5762c2892b9a78006373a686")]
        }
    }
}
var unwind = {
    $unwind : "$projects"
};

// now move array objet as top level object
var project = {
    $project : {
        _id : "$projects.pid",
        name : "$projects.name",
        // list other fields here
    }
}
db.vic.aggregate([match, unwind, match, project])

因此,您正在寻找一个只返回1
pid
?@AndreiM的查询。在本例中,我需要所有的pid,包括pid'sso,类似于下面的
db.users.find({},{projects:1,{u id:0}).pretty()
您需要强制省略{u id>,因为它将返回其他方式您使用的mongo版本是什么?不清楚您在这里要问什么。请编辑您的问题以显示预期结果。