Moogose复杂的查询连接
问题描述:
我坚持与一些复杂的查询连接在猫鼬(使用的NodeJS)Moogose复杂的查询连接
我有模型用户
{ active_payment: {type: mongoose.Schema.Types.ObjectId, ref: 'Payment'}}
和模型支付:
{status : Number, creation_date: Date}
我想找到所有的用户状态保持= 2. 我试过了:
User.find({'active_payment.status': 2,}).populate('active_payment')
但它不工作。有没有办法做到这一点,而无需通过for循环对所有用户进行排序? 我还想按付款的creation_date对用户进行排序。
答
在User.find()
直接不能达到status
,请试试这个
User
.find({})
.populate({
path: 'active_payment',
match: { status: 2},
})
.exec(function(err, users) {
users = users.filter(function(user) {
return user.active_payment; // filter the user by active_payment field
});
});
随着match
过滤status
是2
填充文档,然后填充后过滤user
虽然active_payment
。
不,它没有为我工作。 –
@ImenAmmar,请尝试我的更新答案。 – zangw