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

时间:2018-01-18 17:36:18

标签: node.js mongoose

我正在使用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
}

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

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

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

1 个答案:

答案 0 :(得分: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);
    }
});

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