【问题标题】:mongodb Modified field name may not start with $mongodb 修改的字段名不能以$开头
【发布时间】:2016-06-13 19:44:50
【问题描述】:

我使用 node.js 通过 mongodb 管理我的数据库

在 server.js 中,此代码引发错误

TB_LolCombinationOfChampion.update({},{ $set: { $set: { win: 23445123123 }}},{multi: true},function (err, raw) {
                        if (err) console.log(err);
                        console.log('The raw response from Mongo was ', raw);
                        });

我收到此错误

{ [MongoError: 修改后的字段名不能以 $ 开头]
name: 'MongoError',
err: '修改后的字段名不能以$开头',
代码:15896,
n:0,
connectionId:601,
ok:1}
原始响应 来自 Mongo 的为空

为什么会出现这个错误以及我如何避免这个错误?

【问题讨论】:

  • 您在更新文档中有嵌套的$set,请考虑删除外部的$set 文档。

标签: node.js mongodb


【解决方案1】:

问题是你重复了两次 $set 而不是

{ $set: { $set: { win: 23445123123 }}}

{ $set: { win: 23445123123 }}

【讨论】:

    【解决方案2】:
    TB_LolCombinationOfChampion.update({},{ $set: { win: 23445123123 }},{multi: true},function (err, raw) {
                            if (err) console.log(err);
                            console.log('The raw response from Mongo was ', raw);
                            });
    

    删除多余的 $set 并尝试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 2019-05-19
      • 2018-02-22
      • 1970-01-01
      • 2015-06-25
      • 2020-10-08
      相关资源
      最近更新 更多