mongodb - 如何删除 Mongo 中已弃用的字段?

我从文档定义中删除了一些字段。我想在所有集合文档中删除此字段。我该怎么做?

最佳答案

试试:

db.collection.update(
    { '<field>': { '$exists': true } },  // Query
    { '$unset': { '<field>': true  } },  // Update
    false,                               // Upsert
    true                                 // Multi-update
)

其中 field 是您已弃用的字段,而 collection 是它被删除的集合。

一般更新命令的格式为 db.collection.update(criteria, objNew, upsert, multi)falsetrue 尾随参数禁用 upsert 模式并启用多重更新,以便查询更新集合中的所有文档(不仅仅是第一个匹配项)。

MongoDB 2.2+ 更新

您现在可以为 upsert 和 multi 提供 JSON 对象而不是位置参数。

db.collection.update(
    { '<field>': { '$exists': true } },  // Query
    { '$unset': { '<field>': true  } },  // Update
    { 'multi': true }                    // Options
)

https://stackoverflow.com/questions/8641340/

相关文章:

java - 从 JSON 字符串创建 BSON 对象

mongodb - 从 Mongo 获取 BinData UUID 作为字符串

node.js - Mocha beforeEach vs 执行前

mongodb - 为什么 MongoDB 这么快

mongodb - 启动 mongod fork,ERROR : child process fai

mongodb - 如何在 Mongodb 的字段中查找子字符串

node.js - 如何在 MongoDB collection.find() 上获取回调

mongodb - 访问 Meteor 生产数据库

mongodb - 如何通过 Docker 在 MongoDB 上启用身份验证?

mongodb - 如何将 mongo 命令生成为平面文件