Mongoose按键查找文档,其值为复杂对象

Bri*_*sad 6 mongoose node.js

我正在使用Mongoose根据下面描述的标准搜索集合中的文档:

文献:

{
    "_id": {
        "$oid": "5a60621e20205641281f7c2f"
    },
    "key1": [
        {
            "available": true,
            "required": true,
            "name": "Name-1"
        },
        {
            "available": true,
            "required": true,
            "name": "Name-2"
        },
        {
            "available": true,
            "required": true,
            "name": "Name-3"
        }
    ],
    "__v": 0
}
Run Code Online (Sandbox Code Playgroud)

我想基于属性执行搜索key1.所以基本上我想做的是将json对象作为下面的搜索模式传递​​,并将结果作为上面的文档得到回报

[
        {
            "available": true,
            "required": true,
            "name": "Name-1"
        },
        {
            "available": true,
            "required": true,
            "name": "Name-2"
        },
        {
            "available": true,
            "required": true,
            "name": "Name-3"
        }
    ]
Run Code Online (Sandbox Code Playgroud)

我有办法实现这个目标吗?

Tar*_*sam 1

您可以在 mongodb 文档 $eq 中检查 $ eq

const selector = [
    {
        "available": true,
        "required": true,
        "name": "Name-1"
    },
    {
        "available": true,
        "required": true,
        "name": "Name-2"
    },
    {
        "available": true,
        "required": true,
        "name": "Name-3"
    }
];

Model.find({key1: {$eq: selector}}, (error, result) => {
    if(!err) {
    res.send(result);
    }
});
Run Code Online (Sandbox Code Playgroud)

模型是您从中获取的集合。