mongodb - 为集合中的每个文档生成一个新的 Mongo 对象 ID?

标签 mongodb objectid

如何在批量更新中为每个文档创建唯一的对象 ID?

我试过了,

db.foo.update({ objectId: null }, { $set: { objectId: new ObjectId() }}, { multi: true })

但这为我提供了每个文档的相同对象 ID。

最佳答案

因为您要为每个文档应用一个唯一值,所以您需要遍历您的集合并一次更新一个文档。

在外壳中:

db.foo.find({ objectId: null }).forEach(function(doc) {
    doc.objectId = new ObjectId();
    db.foo.save(doc);
});

关于mongodb - 为集合中的每个文档生成一个新的 Mongo 对象 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22158114/

相关文章:

javascript - 使用 jquery ajax 发布到 mongodb

node.js - Mongoose:为值 "[ 5ac5cfb41fca8a22f519cb22 ]"转换为数组失败

mongodb - mongo scala驱动程序在使用insertOne后得到_id

java - 用java保存接收到的数据

mongodb - mongodb中单个查询的多个计数

node.js - 在mongodb中使用多个条件更新数组

mongodb - 用mongodb玩转2.0 Morphia设计模式

mongodb - 获取 $lookup 管道中 $limit 之前返回的文档数 - MongoDB

arrays - 从 mongodb 中的对象数组中删除 id

ruby - 如何创建具有相同对象 ID 的 Ruby 类