这是我使用“updateMany”命令的尝试:
db.getCollection('email_status').updateMany({
SentOn: {
$gte: ISODate("2010-01-01T00:00:00.000Z"),
$lt: ISODate("2023-10-31T00:00:00.000Z")
},
"EmailMessage.ReplyAddress.Address": {$eq: "[email protected]"},
$set: {EmailMessage.ReplyAddress.Address: "[email protected]", EmailMessage.ReplyAddress.DisplayName: "My Name"}
})
我尝试以多种不同的方式修改 $set: 语句,但仍然没有得到有效的更新语句。
这是我在上面的代码中遇到的错误:
Error: Line 7: Unexpected token .
如果字段名称包含点 (.),则必须将其括在引号中
$eq
不需要(可以用,但是多写)
您错过了一个大括号来分隔 filter 和 update:
db.collection.updateMany(filter, update, options)
会是这样的:
db.getCollection('email_status').updateMany(
{
SentOn: {
$gte: ISODate("2010-01-01T00:00:00.000Z"),
$lt: ISODate("2023-10-31T00:00:00.000Z")
},
"EmailMessage.ReplyAddress.Address": "[email protected]"
},
{
$set: {
"EmailMessage.ReplyAddress.Address": "[email protected]",
"EmailMessage.ReplyAddress.DisplayName": "My Name"
}
}
)