【发布时间】:2019-02-05 03:15:52
【问题描述】:
我有两个型号 - M1 和 M2。
在 M1 中,我有一个 M2 对象数组。
我正在尝试创建一个查询,该查询将获取一堆 M1 模型,但前提是 M2 中的某个字段与我设置的条件匹配。
我已经正确设置了模型(所以 M1 有一个 M2 的 Schema.Types.ObjectId 数组)。
理想情况下,我想做这样的事情:
var result = await M1.find({
'm2.title': 'title-match',
// ...
// Plus other criteria
})
.populate('m2')
.exec();
所以我想要返回的是所有具有 M2 模型且“标题”设置为“标题匹配”的 M1 模型。
但这似乎不起作用,我不确定为什么。
我尝试在填充函数中使用“匹配”,但这与我设置的其他查找条件不匹配(例如,我可以在填充函数中包含匹配,但如果我有一个 M1 模型正确的 M2 模型,但不符合其他标准,则被排除在外)。
我需要将所有填充过滤器与其他过滤器混合在一起,以便正确评估是否应将其包含在结果中。
【问题讨论】:
标签: node.js mongodb mongoose where populate