node.js - mongodb查找低于另一个字段的字段加上参数值

标签 node.js mongodb

我在 mongodb 中有以下集合,我们称之为“产品”:

[
  {
    "name"           : "Product X",
    "warehouseStock" : 50,
    "reservedStock"  : 41
  },
  {
    "name"           : "Product Y",
    "warehouseStock" : 50,
    "reservedStock"  : 10
  }
]

我想要一个 find() 查询,该查询返回此集合中“warehouseStock”小于(“reservedStock”+阈值)的文档,其中阈值是传递到 find() 查询中的参数。

我正在尝试在 Node 中执行以下 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,那么我只会获得上面集合示例中两项中的第一项。

谢谢!

最佳答案

您可以使用$where :

var threshold = 10;
mongo.getDb().collection('products').find({
    "$where": "this.warehouseStock < (this.reservedStock + " + threshold + ")"
}).toArray(function(err, items) {
    console.log(items);
});

关于node.js - mongodb查找低于另一个字段的字段加上参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43306657/

相关文章:

node.js - NightWatch - 无法在具有值的输入上找到带有 xpath 定位器的元素

node.js - 退出时的 Node js进程无法永远使用

node.js - 是什么阻止了我的 Node.js 代码?从命令行获取参数

node.js - 在 Node 集群上运行多个 Node 应用程序

ruby - 登录 MongoDB 集合 (Ruby)

c# - 在 C# 中构建(转义)JavaScript 正则表达式

node.js - 使用 javascript/typescript 在 vscode 中预览转换

mongodb - 如何在 mongo shell 中运行本地脚本 - 解决方案 load()

ruby-on-rails - MongoDB ruby 日期

node.js - 从 mongoDB 和 Nodejs 获取数据 : toArray is not a function error