【问题标题】:Mongoose find document by key whose value is a complex objectMongoose 按键查找值为复杂对象的文档
【发布时间】:2018-06-27 21:00:55
【问题描述】:

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

有什么方法可以实现吗?

【问题讨论】:

  • 你匹配json对象与key1?
  • JSON 对象是相同的顺序还是它的变化?

标签: node.js mongoose


【解决方案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);
    }
});

Model 是您从中获取的集合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 2020-06-07
    • 2016-01-08
    • 2023-01-17
    • 1970-01-01
    • 2019-03-02
    相关资源
    最近更新 更多