在执行查询时如何使用来自字段的值?
docs中的示例:
db.inventory.find( { qty: { $gt: 20 } } )
如何使用文档中的字段值而不是20,如下所示:
db.inventory.find( { qty: { $gt: field2 } } )
这就是我想要实现的目标:
var query = model.find();
var first = "field1";
var second = "field2";
query.where(first).gt(second);
编辑:我正在动态构建查询,所以我需要在mongoose中使用查询构建器。
Edid2:感谢下面的回答,这就是我解决问题的方法:
query.where({$where: "this."+first+" > this."+second});
答案 0 :(得分:1)
请使用$ WHERE运算符尝试以下查询:
db.inventory.find({$where: function() {
return ( this.field1 > this.field2 ); } });
P.S:您可以在下面的链接中找到$ Where documnetation: http://docs.mongodb.org/manual/reference/operator/query/where/