MongoDB toLowerCase()

时间:2013-01-29 16:55:01

标签: mongodb mongo-shell

我有一个名为Profiles的集合,其中包含一个名为emails的数组。

我想将数组中的所有电子邮件字符串更改为小写。

db.Profiles.update({"emails":/@/i}, {$set: {"emails" : emails.toLowerCase()}}})

错误:

1月29日16:52:28 SyntaxError:missing)在参数列表(shell)之后:1

我也发现了这个:

db.Profiles.find().forEach(
  function(e) {
    e.emails = e.emails.toLowerCase();
    db.Profiles.save(e);
  }
)

错误:

Tue Jan 29 16:51:41 TypeError:e.emails.toLowerCase不是函数(shell):3

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:5)

您需要小写电子邮件数组中的每个字符串。 string []中没有toLowerCase函数。

示例:

db.Profiles.find().forEach(
   function(e) {
      for(var i = 0; i < e.emails.length; i++){ 
         e.emails[i] = e.emails[i].toLowerCase(); 
      }
      db.Profiles.save(e);  
});

答案 1 :(得分:1)

我找到了一种更简单快捷的方法

db.Profiles.find({email : { $exists: true}}).forEach(
 function(e) {
   e.email = e.email.toLowerCase();
    db.Profiles.save(e);
 });

答案 2 :(得分:0)

db.collectionname.find({ "Key_name": {$ne:null} }).forEach(function(doc) 
{
    db.collectionname.update(
        { _id: doc._id },
        { "$set": { "Key_name": doc.Key_name.toLowerCase() } }
    );
});