如何批量更新 MongoDB 字符串数组以用连字符替换空格?
Posted
技术标签:
【中文标题】如何批量更新 MongoDB 字符串数组以用连字符替换空格?【英文标题】:How to bulk update a MongoDB string array to replace space with a hyphen? 【发布时间】:2020-03-28 16:02:37 【问题描述】:我有一个名为companies
的集合,它有一个名为categories
的数组类型。
如何将所有类别数组中的空格('')替换为'-'?
我必须用 cmd 来做这个
这实际上是我想要做的
更新公司集 Categories=Categories.replace(" ","-")
【问题讨论】:
您必须遍历并更新每个文档。 如果您发布您的语言和/或您一直在处理的一些代码 - 它也可以让您更快地获得结果。 【参考方案1】:我假设您的数据如下所示
"_id" : ObjectId("5e7f809623d919fb0fc776a5"),
"categories" : [
"mayur ",
" wadekar ",
" ***"
]
如果您想替换第一次出现的空格,请使用
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);
);
【讨论】:
非常感谢您的回答。你知道windows cmd怎么办吗? 您可以直接在数据库控制台上触发查询。【参考方案2】:魔神
蒙哥
使用您的数据库名称
var bulk = db.Companies.initializeUnorderedBulkOp();
bulk.find(MainCategories: null ).update( $set: MainCategories:[Key:"Uncategorized",Value:"uncategorized"]);
bulk.execute();
【讨论】:
我认为最初的问题是关于将["Category One", "Something Else"]
更改为 ` ["Category-One", "Something-Else"]` -- 用连字符替换空格。类似于:gsub(' ', '-')
以上是关于如何批量更新 MongoDB 字符串数组以用连字符替换空格?的主要内容,如果未能解决你的问题,请参考以下文章