【问题标题】:Unable to use agrregate operators in MongoDB(storageEngine=mmapv1)无法在 MongoDB 中使用聚合运算符(storageEngine=mmapv1)
【发布时间】:2019-10-17 14:44:27
【问题描述】:

我在使用$convert 运算符时遇到以下错误,mongodb storageEngine 是 mmapv1

db.persons.aggregate([
  {
    $project: {
      registred: { $convert: { input: "registered.age", to: "double" } }
    }
  }
]);

错误:命令失败:{“ok”:0,“errmsg”:“无效的运算符 '$convert'", "代码" : 15999 }

【问题讨论】:

  • 您使用的是哪个版本的 MongoDB?

标签: mongodb mongodb-query aggregation-framework


【解决方案1】:

运算符$convert 仅适用于 >= 4.0 的 MongoDB 版本。

也就是说,您有两个选择:

1- 更新你的 MongoDB

2- 转换聚合结果的值。在 Javascript 中,您可以执行以下操作:

var result = db.persons.aggregate([
    {
        $project:{
            registred:{
                $convert:{input:"registered.age",to:"double"}
            }
        }
    }
]);

result.forEach(
    function(document) {
        document.registred.age = parseFloat(document.registred.age);
    }
);

【讨论】:

    猜你喜欢
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2018-10-03
    • 2021-08-28
    • 2013-04-25
    • 1970-01-01
    • 2016-09-11
    相关资源
    最近更新 更多