在MongoDB中替换类型
我有一个MongoDB数据库,在这里我试图用一个连接字符串替换特定元素的所有数组。目前,大多数文档都有一个字符串数组。我需要一个脚本,可以找到每个有数组的文档(有些已经手动更新),并用当前数组的串联替换该数组 到目前为止,我已经:在MongoDB中替换类型,mongodb,Mongodb,我有一个MongoDB数据库,在这里我试图用一个连接字符串替换特定元素的所有数组。目前,大多数文档都有一个字符串数组。我需要一个脚本,可以找到每个有数组的文档(有些已经手动更新),并用当前数组的串联替换该数组 到目前为止,我已经: var cursor = db.recipe.find({ directions: { $type : 4 } }); while ( cursor.hasNext() ) { var doc = cursor.next(); db.recipe.up
var cursor = db.recipe.find({ directions: { $type : 4 } });
while ( cursor.hasNext() ) {
var doc = cursor.next();
db.recipe.update(
{ _id : doc._id },
{ $set : { directions : { $concat : { doc.directions } } } }
);
};
不幸的是,它一直在抱怨一个意外的“.”。我假设我没有正确使用$concat。是一个聚合运算符。要简单地查找和更新,请使用纯javascript
目前,大多数文档都有一个字符串数组。我需要一个脚本,将找到有一个数组的每个文档
将$type:4
应用于数组时,它会依次检查方向
字段中的任何元素是否为数组,只有找到一个元素时才会返回true
例如:对于输入[“x”,“y”]
它将返回false
,对于[[“x”],“y”]
它将返回true
由于数组只包含字符串,因此需要使用运算符查找类型
db.recipe.find({$where:"Array.isArray(this.directions)"}).forEach(function(doc){
var value = doc.directions.join();
db.recipe.update({"_id":doc._id},{$set:{"directions":value}});
})