如何批量更新MongoDB字符串数组以用连字符替换空间?

问题描述 投票:0回答:2

我有一个名为companies的集合,该集合的数组类型为categories

如何将所有类别数组中的空格('')替换为'-'?

我必须使用cmd执行此操作

mongodb
2个回答
0
投票

我假设您的数据像下面这样

{
    "_id" : ObjectId("5e7f809623d919fb0fc776a5"),
    "categories" : [ 
        "mayur ", 
        " wadekar ", 
        " stackoverflow"
    ]
}

如果要替换第一次出现的空格,请使用

db.companies.find({}).forEach(function(e,i) {
    var data = e.categories
    for (var i = 0; i < data.length; i++) {
        e.categories[i] = e.categories[i].replace(" ","-");
    }
    db.companies.save(e);
});

如果要替换所有空格,请使用

db.companies.find({}).forEach(function(e,i) {
    var data = e.categories
    var find = " "; // find for space in whole string
    var re = new RegExp(find, 'g');
    for (var i = 0; i < data.length; i++) {
        e.categories[i] = e.categories[i].replace(re,"-");
    }
    db.companies.save(e);
});

0
投票

mongod

mongo

使用YourDbName

var bulk = db.Companies.initializeUnorderedBulkOp();

bulk.find({MainCategories:null}).update({$ set:{MainCategories:[{Key:“ Uncategorized”,Value:“ uncategorized”}]}});

bulk.execute();

© www.soinside.com 2019 - 2024. All rights reserved.