【问题标题】:MongoDB unknown top level operator: $expr nodejsMongoDB 未知顶级运算符:$expr nodejs
【发布时间】:2021-08-02 18:16:08
【问题描述】:

我尝试在网上找到解决方案,但没有成功。

这是代码:

Invoice.count( { $expr: {$gt: [ "$totalAmount", "$remainingDebt" ]} } ).exec(callback);

其中totalAmountremainingDebt 是架构发票中的字段。

我得到的结果是:“unknown top level operator $expr”。

我正在使用 mongoose 5.0.11 和 mongo lab。

有什么想法吗?

【问题讨论】:

  • 在撰写本文时,mLab 默认使用的 MongoDB 版本目前是 MongoDB 3.4 版,但 $expr 仅在 3.6(和更新)版本中可用。
  • 谢谢@chridam...我在想我在查询中犯了一个错误:/...

标签: node.js mongodb mongoose mongodb-query expr


【解决方案1】:

您正在为 MongoDB 使用哪个版本,因为 MLab 提供了最高 3.6 版本的 Mongo,因此您需要修改查询或升级 Mongo DB 版本。

【讨论】:

    【解决方案2】:

    我正在使用这个查询。

    InvoiceModel.aggregate([
        {
          $expr:{'$gt': [ "$totalAmount", "$remainingDebt" ]}
        },
        {
          $count:'COUNT'
        }
     ],(error, result)=>{
       console.log(result)
    })
    

    【讨论】:

      猜你喜欢
      • 2017-09-26
      • 2015-01-01
      • 2016-02-09
      • 2018-06-11
      • 2015-10-15
      • 2021-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多