我有两个文档buyers
和submission
(提交的是买方的子文档)。
mongoose.model('Buyer',{
username: String,
credit: Number,
forms:[mongoose.model('Submission').schema]
});
和
mongoose.model('Submission',{
title: String,
bid: Number,
});
每位买家都有一个credit
属性,每个submission
都有一个出价属性。我想构建一个查询,用于搜索出价低于其parent.credit
是否可以根据父子属性的比较找到?
答案 0 :(得分:2)
您无法使用普通查找查询比较mongodb中的两个字段(无论是否为子文档)(除非您use the $where,但要注意它很慢,因为它为每个文档执行javascript)。
但是,您可以使用聚合管道:
db.buyers.aggregate([
{$unwind: "$forms"},
{$project: {
username : 1,
credit : 1,
forms : 1,
lower : {"$cond" : [{$lt: [ '$forms.bid', '$credit']}, 1, 0]}
}},
{$match : {lower : 1}}
]);
这将为您提供出价低于信用额度的条目。