因此,我需要从我的Collection 中唯一地引用特定的子文档.例如:

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

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

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

推荐答案

是的,使用mongo的ObjectId是一种方法.唯一的问题是:你必须自己在应用程序代码中生成它们.它们应该是全球唯一的,不同的工作人员不会生成两个相同的objectid,因此在这个意义上不存在种族条件.

所有官方驱动程序都应该提供生成ObjectId的方法.以下是Ruby中的用法:

oid = BSON::ObjectId.new

Mongodb相关问答推荐

MongoDB中的数据类型没有通过数据库Pyspark更改(从字符串到日期)

如何将空值单独分组?

联接不返回具有ObjectId和非ObjectId的结果

Tableau 与 Mongo DB Atlas by MongoDB 的连接缓存问题

将子元素的数组值提取到 mongodb 中的单个数组中?

来自嵌套对象数组的 MongoDB 聚合

定期自动轮换 MongoDb 集合

MongoDB 到 Snowflake 连续加载

为什么使用整数作为 pymongo 的键不起作用?

mongodb中集合的最大大小是多少

哪个库最适合用于带有 Scala 的 MongoDB?

db.createCollection 不是函数

mongod 和 mongo 命令在 Windows 10 上不起作用

MongoDB - 聚合 - 获取数组中的唯一项

了解 Mongoose 中的关系和外键

在 mongoose 中使用 UUID 进行 ObjectID 引用

如何使用 mongoose 连接到 mongoDB Atlas

MongoDB聚合框架的索引优化

使用 Mongoose ORM 的杀手锏是什么?

如何使用户的邮箱在 mongoDB 中唯一?