如何过滤子数组并在mongoDb中设计匹配文档的多个匹配值

时间:2015-03-26 11:16:23

标签: mongodb

我的结构如下:

{
_id: ObjectId("doc1"),
    SubArrayDocs: [
        {
        _id: ObjectId("subDoc1"),
        name: "name1"
        },
        {
        _id: ObjectId("subDoc2"),
        name: "name2"
        },
        {
        _id: ObjectId("subDoc3"),
        name: "name3"
        }
    ]
},
{
    _id: ObjectId("doc2"),
    ....
}

我想匹配doc1并在投影时通过_id返回过滤后的SubArrayDocs,这样我只得到subDoc1和subDoc2。

我已经尝试了一些事情,我可以获得所有的subArrayDocs,或者只是第一个匹配$ in运算符的。

有没有办法在匹配的文档上过滤Subarray文档,这样我就可以在不使用聚合框架的情况下找回多个子数组文档。

给定orgId的预期结果:" doc1"和 子阵列文档:" subDoc1,subDoc2"应该是:

{
    _id: ObjectId("doc1"),
        SubArrayDocs: [
            {
            _id: ObjectId("subDoc1"),
            name: "name1"
            },
            {
            _id: ObjectId("subDoc2"),
            name: "name2"
            }
        ]
    }

所以基本上,获取文档,但其子数组的过滤内容。 我已经尝试了 I 可以使用$ elemMatch,投影和位置参数的所有内容。

0 个答案:

没有答案