将 mongo 中的大写字母更改为骆驼大小写



我有一个名为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')
      } }
   ]
)

蒙戈游乐场

相关内容

  • 没有找到相关文章

最新更新