【发布时间】:2014-06-01 13:10:29
【问题描述】:
我有以下格式的文件:
{
_id: "1232014",
account: "123",
year: 2014,
country: 826
}
_id 字段由account 字段和year 字段组合而成。
但是,我后来发现同一年的同一个帐户可以在不同国家/地区拥有数据,并且我遇到了重复键错误。
我需要做的是将country 字段也作为_id 字段的一部分,例如
_id: "1232014826"
由于我使用文档中的值作为更新的一部分,我认为我不能使用$set,因此我尝试在forEach() 查询中使用save():
db.account_data.find({"_id" : "1232014"}).forEach(function(doc) {
doc._id = doc._id + doc.country;
db.collection.save(doc);
});
这不起作用。
有没有办法更新_id?或者这是不可能的,因为它是主键字段?
【问题讨论】:
-
@JoachimIsaksson 可能不是因为它实际上是一个非常糟糕的答案。让我们尝试删除旧的和错误的答案,并用更好的答案替换它们。
-
我现在看到这与您提到的另一个问题类似。希望这个问题有更多的细节和背景,如果其他人有同样的问题,可能会有用。这实际上是那个问题的不被接受的答案,它与我需要的东西最相关。
标签: mongodb