猫鼬|根据每个文档中的字段更新所有文档

时间:2018-02-14 08:53:25

标签: javascript mongoose

我有一个集合,我想根据字段email更新所有文档并将其转换为小写。

const addressBookSchema = new Schema({
    email: String,
});
const addressBook = mongoose.model("address_book", addressBookSchema)

我正在尝试执行以下操作:

addressBook.update({}, {$set: {email: email.toLowerCase()}}, {multi: true});

但这不起作用。

如何获取电子邮件字段并将其设置为小写?

2 个答案:

答案 0 :(得分:1)

在所有文件上进行,

addressBook.find({}, {email: 1})
    .exec((err, docs) => {
        if (err || docs == undefined || docs.length == 0)
            ;
        else {
            docs.forEach((doc) => {
                 addressBook.findOneAndUpdate({_id: doc._id}, 
                                              {$set: {email: doc.email.lowercase()}})
                 .exec();
            });
       }
    });   

答案 1 :(得分:0)

如果您有这么大的数据集,则应使用bulkWrite()函数

    .number-icon-default
{
    background-image: url("#{request.contextPath}/lib/leaflet/images/marker-icon.png");
    text-align:center;
    color:Black;   
    text-shadow: 1px 1px #000000;
    font-size: large;
    font-weight: bold;
}