在Node.js
应用中,我使用此代码来获取一些数据:
Users.find({user_enabled:true}).populate('books')...
但是现在我有一个问题。我只想要用户使用英语书籍。
现在我正在这样做:为他们取得所有用户和所有书籍。然后在循环中,我可以检查每种书籍语言..这不是一个好的解决方案。我需要像SQL中的Where子句。如果用户没有英语书籍,我在结果中不需要该用户。 Mongodb
/ mongoose
无法做到这一点? j在获取所有结果后必须使用代码吗?
我需要这样的东西:
Users.find({user_enabled:true}).populate('books').where({'books.language':'en'})
答案 0 :(得分:2)
你可以用匹配来做到这一点:
Users
.find({ user_enabled: true })
.populate({
path: 'books',
match: { 'language': 'en' },
})
.exec()
有关详细信息,请查看http://mongoosejs.com/docs/populate.html