开发 MongoDB 删除字段(删除列)

· 发布于 8个月前 · 154 次阅读
本帖最后由 阳 于 2018-11-06 08:21:17 编辑。

使用 python 的 MongoEngine 库时修改了模型, 删除某列字段后出现错误.

我是在 mongo shell 使用 update 语句 配合 $unset 原子操作来删除相应字段:

(env) F:\workspace\omrh>mongo
>use yourdb
>db.yourdb.update({}, {$unset: {the_delete_filed: ""}}, false, true)
WriteResult({ "nMatched" : 559173, "nUpserted" : 0, "nModified" : 559173 })

db.collection.update 参数说明:

  • query : update 的查询条件,类似 sql update 查询内 where 后面的。
  • update : update 的对象和一些更新的操作符(如 $, $inc...)等,也可以理解为 sql update 查询内 set 后面的。
  • upsert : 可选,这个参数的意思是,如果不存在 update 的记录,是否插入 objNew, true 为插入,默认是 false,不插入。
  • multi : 可选, mongodb 默认是 false,只更新找到的第一条记录,如果这个参数为 true,就把按条件查出来多条记录全部更新。
  • writeConcern : 可选,抛出异常的级别。

$unset 原子操作

{ $unset: { <field1>: "", ... } }

$unset表达式(即"")中的指定值不影响操作。

共收到 0 条回复