mongodb - 如何为 MongoDB 中的嵌入式文档创建唯一 ID?

所以我需要从我的集合中的项目中唯一地引用特定的子文档。例如:

User = {
    'name': 'jim',
    'documents: [
        {'id': 0001, 'title': "My document"},
        {'id': 0002, 'title': "My second document!"},
    ]
}

所以我需要能够为新文档自动创建 ID,最好不要在应用程序级别(因为在实际开发场景中会有竞争条件)。

有没有办法使用 mongo 的自动生成的 ObjectId(在集合级别的 _id 字段中使用)或类似的东西?

最佳答案

是的,使用 mongo 的 ObjectId 是要走的路。唯一的事情是:您必须在应用程序代码中自己生成它们。它们应该是全局唯一的,不同的 worker 不会生成两个相同的 ObjectId,因此在这个意义上不存在竞争条件。

所有官方驱动都应该提供生成 ObjectId 的方法。下面是它在 Ruby 中的表现:

oid = BSON::ObjectId.new

https://stackoverflow.com/questions/10144852/

相关文章:

mongodb - 如何在 MongoDB 集合中获取特定的嵌入文档?

macos - 如何为 MongoDB 创建配置文件

mongodb - 如何在 MongoDB Compass 工具中执行更新($set)查询?

mongodb - 使用 mongimport 导入 JSON 文件,不断得到 `unexpecte

mongodb - 如何在启动时为 MongoDB 容器创建数据库?

c# - 如何将任意 json 对象发布到 webapi

mongodb - 了解MongoDB缓存系统

node.js - 创建使用 Mongoose 更新和保存文档的方法?

node.js - 一个包含 node.js 和 mongodb 的整个网站?

mongodb - 使用 Mongoose、Node.js 和 Underscore 生成代码的简单