javascript - MongoDB:更新所有文档中的字符串字段

标签 javascript node.js mongodb database

我有一个包含许多文档的 MongoDB 数据库。这些文章中的每一篇都有一个名为 myField 的字段,其中包含一个字符串。

我是否可以对集合中的所有 文档运行批量更新,修改每个文档的 myField 值?

在我的例子中,我只想从每个字段中删除尾随的“.html”。我在我的应用程序中使用 node.js 与 Mongo 交互,但如果可能的话,我更希望能够在 mongo 命令提示符下运行单个命令来执行此更新。

最佳答案

是的,可以使用 mongo 从命令提示符更新 mongoDB 文档信息。

说出脚本文件名 migration.js 并转到此文件目录并打开命令提示符并运行此命令。

mongo localhost/dbName migration.js

migration.js 代码如下:

print('Please wait it may will take some time to complete migration');
print('....');

db.collectionName.find().forEach( function(doc) {

    if(!doc._id) {
        print('No doc found');
        return;
    }
    // if need can apply logic to update myField

    db.collectionName.update({_id: doc._id}, {$set: {myField: "newVale"}});
});

print('Migration has been completed :)');

关于javascript - MongoDB:更新所有文档中的字符串字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39693571/

相关文章:

javascript - 在 forEach 循环 javascript 中创建对象时出现问题

javascript - atom ide 是如何工作的

javascript - 从 Node 转储 v8 JIT 输出

javascript - 如何在 Meteor.js 中使用 Blaze 构建网格?

Javascript: `location.hash` 对于隐藏元素的链接在第一次单击时返回 `#/`

node.js - 即使已建立连接,数据处理程序也不会触发

node.js - 如何在 webpack 中包含 readline

javascript - 在 Node.js 应用程序中遍历 '__dirname'

node.js - MongoDB-Memory-Server 使 jest 测试调试卡在 WSL 上

mongodb - 忘记了 mongodb 管理数据库凭据。重置一切