提问人:mwestley61 提问时间:10/11/2023 更新时间:10/11/2023 访问量:13
我正在尝试在MongoDb中使用“updateMany”语句来更新此表中的行,并收到“意外令牌”消息。我在这里做错了什么?
I'm attempting an "updateMany" statement in MongoDb to update rows in this table, and get an "Unexpected token" message. What am I doing wrong here?
问:
下面是 MongoDb 表: 'email_status' 集合
这是我尝试使用“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 .
答:
0赞
Wernfried Domscheit
10/11/2023
#1
如果字段名称包含点 (.)
不需要(你可以使用它,但它是额外的写作)
$eq
您错过了用于分隔过滤器和更新的卷括号:
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"
}
}
)
评论