您当前的位置: 首页 >  mongodb

彭世瑜

暂无认证

  • 2浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MongoDB通过forEach循环实现Replace

彭世瑜 发布时间:2019-12-19 19:18:44 ,浏览量:2

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 内容替换

关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.2532s