相关疑难解决方法(0)

聚合数组中的对象匹配多个条件的文档

我有一个包含类似这样的文档的集合:

{
    "_id": ObjectId("xxxxx"),
    "item": [
        { "property": ["attr1", "+1"] },
        { "property": ["attr2", "-1"] }
    ]
}

{
    "_id": ObjectId("xxxxy"),
    "item": [
        { "property": ["attr1", "-1"] },
        { "property": ["attr2", "0"] }
    ]
}

{
    "_id": ObjectId("xxxxz"),
    "item": [
        { "property": ["attr1", "0"] },
        { "property": ["attr2", "+1"] }
    ]
}
Run Code Online (Sandbox Code Playgroud)

最好使用聚合管道,当且仅当任何一个属性匹配多个条件时,有没有办法匹配文档?

例如,我想要一个查询,其中数组中的一个对象与这两个条件都匹配:

("item.property": "attr1") AND ("item.property": /^\+/)
Run Code Online (Sandbox Code Playgroud)

也就是说,包含“attr1”和以“+”开头的元素的单个属性。

但是,使用我当前的查询,如下所示:

collection.aggregate(
    { $match:
        { $and: 
            [
                { "item.property": "attr1" },
                { "item.property": /^\+/ }
            ] …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

4
推荐指数
1
解决办法
1万
查看次数