【问题标题】:Mongoose find element in array猫鼬在数组中查找元素
【发布时间】:2016-05-14 20:13:17
【问题描述】:

我刚开始使用 Mongoose,但在查找元素时遇到了问题...

我的架构包含一个subregions 数组,我想通过它的code 从中找到匹配的数组。架构如下:

 var schema = {
        name: {
            type: String,
            required: true
        }

        ...

        subRegions: [{
            name: {
                type: String,
                required: true
            },
            code: {
                type: String,
                required: true
            }
        }]

        ...

    };

我想出了

find({
    subRegions: {
        "$in": [{
            code: regionCode
        }]
    }
}).exec(...)

但这不起作用...

【问题讨论】:

    标签: mongodb mongoose mongodb-query


    【解决方案1】:

    您的术语已关闭,因为该结构不是“多维”数组,因为它们具有“数组中的数组”,因此是“维度”。这只是数组中的“对象”。

    所以你的问题是一个基本的例子,即错误的论点。你不需要$in 来搜索一个数组,而是需要一个“列表/数组”的参数来应用于该字段。

    简而言之,只需查找该字段,然后使用"dot notation"

    .find({ "subRegions.code": regionCode }).exec(...);
    

    您只需要$in 来获得本质上的$or 条件,查找subRegions.code 的替代值,因此当只有一个值要匹配时,您不需要这样做。

    【讨论】:

    • 谢谢。是的,就是这样。已经很晚了,我把事情搞混了,因为我最初在那个数组中有 ObjectId()s...
    • 谢谢!!你拯救了我的一天
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 2022-01-25
    • 2018-05-28
    相关资源
    最近更新 更多