我想在Mongo中编辑以下数据结构:
{
"images" : [{
"image_id" : 46456,
"image_path" : "http://cdn.site.com/image.jpg",
"image_thumbnail" : "http://cdn.site.com/image.jpg",
"image_detailed" : "http://cdn.site.com/image.jpg",
"image_type" : "0"
}, {
"image_id" : 46452,
"image_path" : "http://cdn.site.com/image.jpg",
"image_thumbnail" : "http://cdn.site.com/image.jpg",
"image_detailed" : "http://cdn.site.com/image.jpg",
"image_type" : "2"
}, {
"image_id" : 46453,
"image_path" : "http://cdn.site.com/image.jpg",
"image_thumbnail" : "http://cdn.site.com/image.jpg",
"image_detailed" : "http://cdn.site.com/image.jpg",
"image_type" : "0"
}, {
"image_id" : 46454,
"image_path" : "http://cdn.site.com/image.jpg",
"image_thumbnail" : "http://cdn.site.com/image.jpg",
"image_detailed" : "http://cdn.site.com/image.jpg",
"image_type" : "A"
}]
}
Run Code Online (Sandbox Code Playgroud)
我想将整个数组中的所有'http'替换为'https',无论它们在哪个字段中.
我该怎么办?
谢谢.
MongoDB中没有内置功能.您可以通过循环所有记录来将所有http替换为https.在Mongo shell中,您可以按如下方式执行此操作:
String.prototype.replaceAll=function(s1, s2) {return this.split(s1).join(s2)}
var cursor = db.myCollection.find({},{_id:0});
while(cursor.hasNext()) {
var obj = cursor.next();
var objStr = JSON.stringify(obj);
var newObjStr = objStr.replaceAll("http","https");
db.myCollection.update(obj,JSON.parse(newObjStr));
}
Run Code Online (Sandbox Code Playgroud)