我在mongodb中有以下集合,我们称之为"产品":
[
{
"name" : "Product X",
"warehouseStock" : 50,
"reservedStock" : 41
},
{
"name" : "Product Y",
"warehouseStock" : 50,
"reservedStock" : 10
}
]
我希望有一个find()查询返回此集合中的文档&仓库' warehouseStock'小于(' reservedStock' + threshold),其中threshold是传递给find()查询的参数。
我正在尝试在节点中执行以下find()查询:
var threshold = 10;
mongo.getDb().collection('products').find({warehouseStock: {$lt:(threshold+'$reservedStock')}})
但这似乎不起作用。我知道我可以做到以下几点:
mongo.getDb().collection('products').find({warehouseStock: {$lt:threshold}})
但是如何查询
warehouseStock < (reservedStock + threshold)
所以,如果阈值是= 10,那么我只会得到上面集合示例中的两个项目中的第一个。
谢谢!
答案 0 :(得分:0)
您可以使用$where
:
var threshold = 10;
mongo.getDb().collection('products').find({
"$where": "this.warehouseStock < (this.reservedStock + " + threshold + ")"
}).toArray(function(err, items) {
console.log(items);
});