匹配 MongoDB 中嵌套子文档的嵌套数组
Posted
技术标签:
【中文标题】匹配 MongoDB 中嵌套子文档的嵌套数组【英文标题】:Matching nested array of nested subdocuments in MongoDB 【发布时间】:2021-05-01 06:23:42 【问题描述】:我正在尝试创建一个匹配两个条件的查询。匹配特定的 userId 并匹配 Id 的范围。
示例文档可能如下所示:
我尝试通过添加userId
来使用find
,然后使用MongoDB $in
运算符来匹配feature
列表(作为id)
const featureIds = features.map(feature => feature._id)
console.log(featureIds)
const isFeatureExists = await this.userShopModel.find(
userId,
'items.feature': $in: featureIds ,
)
console.log(isFeatureExists)
我也尝试过使用不同版本的aggregate
,但没有任何运气。
任何 mongo 专家,谁能帮助我?
【问题讨论】:
您的屏幕截图中没有userId
字段..
【参考方案1】:
使用 _id 进行过滤
const featureIds = features.map(feature => feature._id)
console.log(featureIds)
const isFeatureExists = await this.userShopModel.find(
_id : userId,
'items.feature': $in: featureIds ,
)
console.log(isFeatureExists)
【讨论】:
以上是关于匹配 MongoDB 中嵌套子文档的嵌套数组的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB通过***属性和嵌套数组键查找文档,并返回匹配文档的一部分