我是mongodb的新手,我试图替换逗号,在我的收藏中我有很多对象
{
"name":"Mobile",
"ProCategories":[
{
"title":"Home,-electronics"
}
]
}
如上所述,我的集合中有somany对象,现在我想删除所有对象中所有ProCategories数组的逗号。
iam尝试使用mongo shell中的js文件,如下面的
db.companies.find().skip(0).limit(100).forEach(function (doc) {
var replacedTitle = doc.ProCat.filter(function (catTitle) {
return catTitle.title.replace(',', "");
})
db.companies.update({
_id: doc._id
}, {
$set: {
"ProCat": [{
"title": replacedTitle
}]
}
});
})
现在在我的mongo shell我正在做这个
load("url\\to\\my js file\\path")
我尝试了不同的方式,但它不起作用 提前致谢
答案 0 :(得分:1)
var replacedTitles = doc.ProCat.map(function (catTitle) {
return { title: catTitle.title.replace(/,/g, "") };
})
filter
删除数组中与条件不匹配的元素。这不是你想要做的。相反,map
将一个函数应用于数组的每个元素,这是您想要做的。此外,您需要将每个替换的字符串包装在一个对象中,因为您需要一个对象数组,而不是一个字符串数组。 /,/g
使得每个逗号都被移除,而不仅仅是第一个逗号。其余的应该像这样修改。
db.companies.update({
_id: doc._id
}, {
$set: {
"ProCat": replacedTitles,
}
});