【发布时间】:2021-07-14 08:29:45
【问题描述】:
我使用的是 mongo 4.2 版本。我创建了一个分片集合。我想更新几个包含分片键的字段的值。根据 mongo 文档 https://docs.mongodb.com/manual/core/sharding-shard-key/#change-a-document-s-shard-key-value 。它说我们可以更新分片键的值。但我收到以下错误
Performing an update on the path 'status' would modify the immutable field 'status'
请让我知道我在这里缺少什么
我尝试了以下查询
.updateOne({date:{'$gte': '2021-01-01', '$lte': '2021-01-15'},
status: 'U' ,
type: 'SC',
name: 'product1',
currency: 'INR' },
{$set: {status: 'M'}})
这是分片键
shard key: {
"date" : 1,
"status" : 1,
"type" : 1,
"name" : 1,
"currency" : 1
}
【问题讨论】:
-
你的分片键(复合键?)是什么?你的更新是什么样子的?
-
你试过
updateMany()(或multi: true)吗?您只能更新单个文档,即updateOne() -
还发布一个示例输入文档,并说明您的分片键是什么。
标签: mongodb sharding mongodb-update