添加一个新字段,包含另一个字段的字符串值的一部分,与另一个字符串进行仲裁

时间:2015-01-06 06:25:57

标签: mongodb mongodb-query

拥有此items集合:

{ _id: ###, itemImage: "picture1.jpg" }
{ _id: ###, itemImage: "picture2.jpg" }
{ _id: ###, itemImage: "picture3.jpg" }

我想为每个文档添加一个名为itemImageThumb的新字段,该字段的修改后的字符串为itemImage - 例如对于第一个文档,它将是picture1_thumb.jpg

我正在寻找一种在Mongo CLI中实现这一目标的方法。

1 个答案:

答案 0 :(得分:3)

db.items.find().forEach(function(item){
    var index = item.itemImage.indexOf(".");    
    var old = item.itemImage;
    var thumb = old.substring(0, index) + "_thumb" + old.substring(index, old.length);

    //if you want add a filed
    db.items.update({_id : item._id}, {$set : {thumb:  thumb}})
})

输出将是:

/* 0 */
{
    "_id" : 0,
    "itemImage" : "picture1.jpg",
    "thumb" : "picture1_thumb.jpg"
}

/* 1 */
{
    "_id" : 1,
    "itemImage" : "picture2.jpg",
    "thumb" : "picture2_thumb.jpg"
}

/* 2 */
{
    "_id" : 2,
    "itemImage" : "picture3.jpg",
    "thumb" : "picture3_thumb.jpg"
}