2
如何在批量更新中爲每個文檔創建唯一的對象ID?爲集合中的每個文檔生成一個新的Mongo對象ID?
我試過,
db.foo.update({ objectId: null }, { $set: { objectId: new ObjectId() }}, { multi: true })
但是,這讓我對每個文檔相同的對象ID。
如何在批量更新中爲每個文檔創建唯一的對象ID?爲集合中的每個文檔生成一個新的Mongo對象ID?
我試過,
db.foo.update({ objectId: null }, { $set: { objectId: new ObjectId() }}, { multi: true })
但是,這讓我對每個文檔相同的對象ID。
由於您要爲每個文檔應用唯一值,因此您需要遍歷集合並逐個更新文檔。
在shell:
db.foo.find({ objectId: null }).forEach(function(doc) {
doc.objectId = new ObjectId();
db.foo.save(doc);
});
您不能更新MongoDB中一個命令當前多個文檔。您可以使用一組通用更新/更新更新多個文檔,但不能對每個文檔進行唯一更改。您需要創建一個循環來遍歷shell中的每個文檔或您最喜歡的編程語言。