我有以下格式的companies
和models
MongoDB集合:
[{company:'Any company', models:['Model1','model2','model3']},
...
{company:'Any-company', models:['model83','Model-abc','MODEL43']}]
正如您所看到的,company
或model
名称中的一些是大写字母或使用短划线符号编写的。
我想将这个集合保存到变量中,我需要它是小写而不是破折号。
我只使用mongoose find
和for loop
这样做:
mongoose.model('Company', companySchema).find({}, function(err, docs) {
if (err) {
console.log(err);
} else {
var companyLowerCase = docs;
for(var i=0;i<companyLowerCase.length;i++) {
companyLowerCase[i].company = companyLowerCase[i].company.replace(/-/g, " ").toLowerCase();
for(var j=0;j<companyLowerCase[i].models.length;j++) {
companyLowerCase[i].models[j] = companyLowerCase[i].models[j].replace(/-/g, " ").toLowerCase();
}
}
}
});
但我想知道是否有可能用MongoDB实现。我发现你可以像这样小写你的值:
db.inventory.aggregate([{
$project:
{
item: { $toLower: "$item" },
description: { $toLower: "$description" }
}
}]);
但您可以使用MongoDB替换"-"
上的" "
吗?如果可以,那么我应该向MongoDB发送什么请求以实现我的目标?
注意:数据库中的集合不应更改。修改必须仅保存在变量中。
答案 0 :(得分:2)
我认为你不能,因为MongoDB没有$project