[英]mongoose | update all documents according to a field in each document
我有一個收集,我想根據現場email
更新所有文檔,並將其轉換為小寫。
const addressBookSchema = new Schema({
email: String,
});
const addressBook = mongoose.model("address_book", addressBookSchema)
我正在嘗試執行以下操作:
addressBook.update({}, {$set: {email: email.toLowerCase()}}, {multi: true});
但這是行不通的。
如何獲取電子郵件字段並將其設置為小寫?
對於所有文檔,
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();
});
}
});
如果數據集如此之大,則應使用bulkWrite()函數
addressBook.bulkWrite([
{
updateMany: {
filter: {},
update: { email: email.lowercase()}
}
},
]).then(handleResult);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.