0
点赞
收藏
分享

微信扫一扫

MongoDB通过forEach循环实现Replace

三维控件研究 2022-02-28 阅读 53


MongoDB没有提供replace操作,需要通过forEach循环实现, 支持JavaScript语法

forEach循环实现Replace操作实例

1、插入一条数据
db.getCollection('blog').insert({'title': 'oldTitle'})

2、查看数据
db.getCollection('blog').find({})
/* 1 */
{
"_id" : ObjectId("5dfb5a491699d4334f25b354"),
"title" : "oldTitle"
}


3、使用save方式保存数据 old->new
db.getCollection("blog").find({
_id: ObjectId("5dfb5a491699d4334f25b354")
}).forEach(function(item) {
item.title = item.title.replace('old', "new");
db.getCollection("blog").save(item);
});

4、查看替换后的数据
db.getCollection('blog').find({})
/* 1 */
{
"_id" : ObjectId("5dfb5a491699d4334f25b354"),
"title" : "newTitle"
}

5、使用update方式更新 new->old
db.getCollection("blog").find({
_id: ObjectId("5dfb5a491699d4334f25b354")
}).forEach(function(item) {
title = item.title;
title = title.replace('new', "old");
db.getCollection("blog").update({_id:item._id},{$set:{title: title}});
});


6、查看数据,已经修改了
db.getCollection('blog').find({})
/* 1 */
{
"_id" : ObjectId("5dfb5a491699d4334f25b354"),
"title" : "oldTitle"
}

总结

使用forEach + save方式实现replace,代码较为简洁,出错概率较低

db.getCollection("blog").find({
_id: ObjectId("5dfb5a491699d4334f25b354")
}).forEach(function(item) {
item.title = item.title.replace('old', "new");
db.getCollection("blog").save(item);
});


参考
MongoDB replace 内容替换




举报

相关推荐

0 条评论