我有一个名为User的集合,其中包含firstName和secondName字段。但数据是大写的。
{
firstName: 'FIDO',
secondName: 'JOHN',
...
}
我想知道是否有可能将田地制作成骆驼箱。
{
firstName: 'Fido',
secondName: 'John',
...
}
您可以使用帮助程序函数来获取所需的答案。
function titleCase(str) {
return str.toLowerCase().split(' ').map(function(word) {
return word.replace(word[0], word[0].toUpperCase());
}).join(' ');
}
db.User.find().forEach(function(doc){
db.User.update(
{ "_id": doc._id },
{ "$set": { "firstName": titleCase(doc.firstName) } }
);
});
使用聚合管道运行更新操作,如下所示:
const titleCase = key => ({
$concat: [
{ $toUpper: { $substrCP: [`$${key}`,0,1] } },
{ $toLower: {
$substrCP: [
`$${key}`,
1,
{ $subtract: [ { $strLenCP: `$${key}` }, 1 ] }
]
} }
]
});
db.User.updateMany(
{},
[
{ $set: {
firstName: titleCase('firstName'),
secondName: titleCase('secondName')
} }
]
)
蒙戈游乐场