Sam*_*ikh 5 mongodb mongodb-query
所以我有一个mongodb文档,其中包含这样的字段
Image : http://static14.com/p/Inc.5-Black-Sandals-5131-2713231-7-zoom.jpg
Run Code Online (Sandbox Code Playgroud)
我想用一些其他文本替换字符串中的缩放,以便:
Image : http://static14.com/p/Inc.5-Black-Sandals-5131-2713231-7-product2.jpg
Run Code Online (Sandbox Code Playgroud)
有可能吗?
您可以使用mongo的forEach()游标方法与$set运算符进行原子更新:
db.collection.find({}).snapshot().forEach(function(doc) {
var updated_url = doc.Image.replace('zoom', 'product2');
db.collection.update(
{"_id": doc._id},
{ "$set": { "Image": updated_url } }
);
});
Run Code Online (Sandbox Code Playgroud)
鉴于要更新的非常大的集合,您可以加快一些事情bulkWrite并重组您的更新操作以批量发送:
var ops = [];
db.collection.find({}).snapshot().forEach(function(doc) {
ops.push({
"updateOne": {
"filter": { "_id": doc._id },
"update": { "$set": { "Image": doc.Image.replace('zoom', 'product2') } }
}
});
if ( ops.length === 500 ) {
db.collection.bulkWrite(ops);
ops = [];
}
})
if ( ops.length > 0 )
db.collection.bulkWrite(ops);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6803 次 |
| 最近记录: |