首页 > 解决方案 > MONGO - 知道输入数组的所有元素是否都在 mongoDB 中

问题描述

我对 mongo 查询有疑问。我有下一个收藏。

"id" : "TEST"
"client" : "0048948",
"contracts" : [
    {
        "contractNumberId" : "contractNumber1",
        "otherField" : "XXXXX",
        "contractFormats" : [
            {
                "formatId" : "format12"
            },
            {
                "formatId" : "format10"
            }
        ]
    },{
        "contractNumberId" : "contractNumber2",
        "otherField" : "XXXXX",
        "contractFormats" : [
            {
                "formatId" : "format12"
            },
            {
                "formatId" : "format15"
            }
        ]
    }
]

我想搜索是否有一个集合,其中包含传递给我的一组合同或格式的所有值。例如,如果在我的输入中我有下一个合同或格式 [contractNumber1, format15] 我的查询应该返回 true,因为我在我的数据库中以合同或格式找到了它,但是如果例如 mi 输入是 [contractNumbe1, format50, contract3, 10],我的查询应该返回 false,因为我的数据库的任何文档都匹配输入的所有出现在任何文档中。

查询应该在合约和格式中找到输入数组的所有输入值。

任何人都可以帮助我吗?我尝试过使用 $elemMatch、$nor 和 $in、$unwind,但结果并不令人满意。

感谢大家的时间。

标签: mongodb

解决方案


推荐阅读