【发布时间】:2021-09-15 11:07:18
【问题描述】:
我有 300k 的测试文档集合。我想将所有人 firstName 和 lastName 更新为小写。
const person = new Schema({
firstName: { type: String},
lastName: { type: String }
})
我已将lowecase:true 添加到架构中,但如何更新现有文档?
我试过了:
CaseFile
.find({ })
.cursor()
.eachAsync(async function (doc) {
await doc.save()
})
但我得到了错误
Error: Collection method find is synchronous
我也试过了:
CaseFile
.find({ })
.then(docs => {
docs.forEach(doc => {
doc.save()
})
})
给出错误:
JavaScript heap out of memory
数据库版本 v5.0.2
“猫鼬”:“^6.0.5”,
感谢 Wernfried Domscheit 的管道 ????解决方案:
CaseFile.updateMany({}, [
{
$set:
{
firstName: { $toLower: '$firstName' },
lastName: { $toLower: '$lastName' }
}
}]
)
.then(res => res)
【问题讨论】:
标签: mongodb mongoose mongoose-schema