我正在尝试重命名MONGODB中集合数组内的特定子字段
{
"_id" : Id("248NSAJKH258"),
"isGoogled" : true,
"toCrawled" : true,
"result" : [
{
"resultsId" : 1,
"title" : "Text Data to be writen",
"googleRanking" : 1,
"isrelated" : false
},
{
"resultId" : 2,
"title" : "Text Data",
"googleRanking" : 2,
"isrelated" : true
}]
**我需要从收集文档中将“相关”重命名为“相关” ** 使用mongo版本4.0
我尝试过:
db.collection_name.update({}, { $rename: { 'result.isrelated': 'result.related'} } )
但是对于我而言,它不起作用
答案 0 :(得分:0)
如官方文档$ rename所述,不适用于数组。 请检查以下链接: https://docs.mongodb.com/manual/reference/operator/update/rename/
但是你可以做这样的事情
let newResult = [];
db.aa1.find({}).forEach(doc => {
for (let i in doc.result) {
newResult.push({
"resultsId" : doc.result[i]['resultsId'],
"title" : doc.result[i]['title'],
"googleRanking" : doc.result[i]['googleRanking'],
"related" : doc.result[i]['isrelated'],
})
}
db.aa1.updateOne({_id: doc._id}, {$set: {result: newResult}});
newResult = []
})