替换 MongoDB 集合中的字符而不保存更改。
Replace character in MongoDB collection without saving changes.
我有 MongoDB 个 companies
和 models
的集合,格式如下:
[{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 发送什么请求来实现我的目标?
注意: 数据库中的集合不应更改。修改必须只保存在变量中。
我认为你做不到,因为 MongoDB 没有 $project
的替换运算符
我有 MongoDB 个 companies
和 models
的集合,格式如下:
[{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 发送什么请求来实现我的目标?
注意: 数据库中的集合不应更改。修改必须只保存在变量中。
我认为你做不到,因为 MongoDB 没有 $project