代码之家  ›  专栏  ›  技术社区  ›  Karol Selak

Mongo错误:字段名不能以$[$set]开头

  •  0
  • Karol Selak  · 技术社区  · 8 年前

    这可能是一个很简单的错误,但我找不到。运行此简单查询:

    db.getCollection('thoughts').update(
      {space: {type: 'list'}},
      {space: {type: {$set: 'arrangement'}}}
    );
    

    数据库集合。原型_validateForStorage@src/mongo/shell/collection。js:185:1 数据库集合。原型_validateForStorage@src/mongo/shell/collection。js:189:13 数据库集合。原型_validateForStorage@src/mongo/shell/collection。js:189:13 数据库集合。原型_validateUpdateDoc@src/mongo/shell/collection。js:416:9 批量/最终操作。updateOne@src/mongo/shell/bulk_api。js:675:9 @(外壳):1:1

    有什么想法吗?

    1 回复  |  直到 8 年前
        1
  •  2
  •   nadavvadan    8 年前

    db.thoughts.update(
      { "space.type": "list" },
      { $set: { "space.type": "arrangement" } }
    );
    

    请注意,对于更新多个文档,应该设置 multi 选项为true:

    db.thoughts.update(
       { "space.type": "list" },
       { $set: { "space.type": "arrangement" } },
       { multi: true }
    );