我在mongo集合中有一个像这样的文档:
{
"_id" :"sdsfsfd323323323ssd",
"data" : {
"('State', 'Get-Alert', 'BLIST_1', 'MessageData')" : [
"$B_Add-Server",
"$B_Pool1_0_Server"
],
"('State', \"Get-Server -Server 'uds412'\"):[
"$B_Add-Server",
"$B_Pool2_0_Server"
]
}
,我需要将“ uds412”更新为“ newValue”。
请帮助,如何查找和替换它?
谢谢
答案 0 :(得分:0)
您可以将有效的JSON对象转换为字符串,然后将字符串替换为新值,然后再次将其解析为有效的JSON对象。
obj={ ...YOUR JSON OBJECT... }
newobj = JSON.parse(JSON.stringify(obj).replace('uds412','newValue'))
答案 1 :(得分:0)
最后,我这样解决了, 问题是,我需要从键中找到子字符串并更新该键。
//首先查询文档
db.server_col.find().forEach(function (docs) {
var tempData = {};
var tempDataAr = [];
for (var key in docs["data"]) {
var find = /'uds412'/;
if (key.match(find)) {
tempDataAr = docs["data"][key]
key = key.replace('uds412', 'newValue');
tempData[key] = tempDataAr;
} else {
tempData[key] = docs["data"][key];
}
}
print(tempData);
// then you can update it
db.server_col.update({ "_id" : ObjectId("sdfsfdafs")}, { $set: { 'data':tempData } }, { multi: true })
});