Mongodb Mongoose查找数组中的元素

Mongodb Mongoose查找数组中的元素,mongodb,mongoose,mongodb-query,Mongodb,Mongoose,Mongodb Query,我刚从猫鼬开始,发现元素有问题 我的模式包含一个子区域的数组,我希望通过它的代码从中找到匹配的子区域。架构如下所示: var schema = { name: { type: String, required: true } ... subRegions: [{ name: { type: String,

我刚从猫鼬开始,发现元素有问题

我的模式包含一个
子区域的数组
,我希望通过它的
代码
从中找到匹配的子区域。架构如下所示:

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

        ...

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

        ...

    };
我想出了

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

但这是行不通的…

您的术语是不正确的,因为该结构不是一个“多维”数组,因为这些结构具有“数组中的数组”,因此是“维度”。这只是数组中的“对象”

所以你这里的问题是一个基本的论点错误的例子。您不需要只搜索数组,而是需要将参数的“列表/数组”应用于字段

简而言之,只需查找字段,然后使用:

.find({“subRegions.code”:regionCode}).exec(…);

对于本质上的
$或
条件,您只需要在
$中查找
子区域的备用值。code
,因此,当只有一个值需要匹配时,您不需要该值。

谢谢。是的,就是这个。时间很晚了,我把事情搞混了,因为我最初在那个数组中有ObjectId(),谢谢!!你救了我一天