我刚开始使用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(...)
但这不起作用......
答案 0 :(得分:6)
您的术语已关闭,因为该结构不是"多维"数组,因为它们在数组中有#34;数组"因此"维度"。这只是"对象"在数组中。
所以这里你的问题是一个基本的例子,让错误的方法参与其中。你不需要$in
来搜索一个数组,而是需要一个" list / array"适用于该领域的论据。
简而言之,只需查找字段,然后使用"dot notation":
.find({ "subRegions.code": regionCode }).exec(...);
您只需要$in
基本上$or
条件,查找subRegions.code
的替代值,因此当只有一个值匹配时您不需要