我的模特
ActivityLanguage
language_id: ID
name: String
Activity
price: Int
languages: [ActivityLanguage]
我想要做的是找到具有某个language_id的ActivityLanguage的活动。
这就像我需要的那样(在mongo中):
db.activities.find({"languages.language_id": "59640de1675c1481820a543e" }, {"languages.$": 1})
我怎样才能在猫鼬中实现它?
我已尝试使用:
Activity.find({'languages.language_id': language_id})
和
Activity.find({"languages": {$elemMatch: { language_id: language_id }}})
它们都返回一个空数组(我已经对我的数据库进行了三次检查,确认存在具有该条件的活动)。我也尝试了在StackOverflow中找到的所有答案,但没有成功
我如何在猫鼬中实现它?
答案 0 :(得分:0)
您可以使用Mongoose model.populate
从你的例子:
Activity.
find({}).
populate({
path: 'languages',
model: 'ActivityLanguage',
match: { language_id: ID } //here you define your language_id criteria
}).
exec()