当前位置: 首页 > 知识库问答 >
问题:

如何在MongoDB中用_id跨集合建模一对多关系?

陶胤运
2023-03-14
{
   _id: "oreilly",
   name: "O'Reilly Media",
   founded: 1980,
   location: "CA"
}

{
    _id: 123456789,
    title: "MongoDB: The Definitive Guide",
    author: [ "Kristina Chodorow", "Mike Dirolf" ],
    published_date: ISODate("2010-09-24"),
    pages: 216,
    language: "English",
    publisher_id: "oreilly"
}

{
    _id: 234567890,
    title: "50 Tips and Tricks for MongoDB Developer",
    author: "Kristina Chodorow",
    published_date: ISODate("2011-05-06"),
    pages: 68,
    language: "English",
    publisher_id: "oreilly"
}

正确的解决方案是publisher_id具有12字节的BSON对象ID吗?

共有1个答案

萧煜
2023-03-14

我认为_id的唯一要求是唯一的。如果您没有显式地给出一个,那么生成的一个就是docs中描述的对象id。

请参阅您链接的同一位置的报价:

因为ObjectID很小,很可能是唯一的,并且生成速度快,所以如果没有指定_id字段,MongoDB使用ObjectID作为_id字段的默认值

 类似资料:
  • 我对MongoDB中的多对多关系实现有一个特定的问题。 我收集了歌曲和艺术家的作品(数百万份文档)。在这里,这首歌可以被许多艺术家演唱,一个艺术家可以唱许多首歌。所以我在两个集合中都遵循了文档引用的方法。像这样... 1.歌曲集:- 2.艺术家收藏:- 但这里的问题是,在删除艺术家的同时,我必须从歌曲所有文档中的艺术家数组中删除一个艺术家,如果该文档中有艺术家,反之亦然。这会导致原子性问题。我如何

  • 如何使用_id检索在我的收藏中创建的最新文档? 我试图通过以下方式在我的Web应用程序中实现分页: 正在检索我页面加载的最后一个文档的_id 在下一页中检索大于最后一个文档_id的文档(http://tldrify.com/dcj) 我采用这种方法的原因是,我试图利用存储数据中的自然顺序——文档中存储的id。 获取下一组帖子的示例: 我的猫鼬模式: 据我所知,Mongo的文件已经按照以下文件从最旧

  • 我是MongoDB的新手,我正在创建一个数据库来记录学生和学生在大学学习的课程。有三个集合,称为学生,科目和讲师。学生集合包含studentId、姓名、dob、email、Year。主题集合包含subjectId、subjectName、credits;讲师集合包含lecturerId、lectureName、speciliazation、contactNo、email。学生和学生收藏之间的关系是

  • 给定以下具有双向一对多关系的JPA实体 如果我从已经包含一些项目的数据库加载购物车 我想用一个新的物品集合替换购物车中的物品 执行此更换的最简单/最佳方法是什么?理想情况下,我希望生成的SQL语句合理高效,但我的主要目标是使用简洁易读的代码执行替换。 为了明确我所说的替换是什么意思,如果购物车最初包含ID为2、3、4的项目,并且包含4、5、6,那么在替换之后,购物车应该包含ID为4、5、6的项目。

  • 假设我去往集合中添加另一个项,但是我没有为新对象准备ObjectID,并且很满意让系统选择一个。系统会选择已经是集合一部分的ObjectID吗? 如果相关,我将使用java API和python API来完成此操作。

  • 我是第一次使用MongoDB,我对NoSQL数据库有一些经验。 我想在文档中创建一个集合。我无法使用MongoDB复制这种行为,因为我在文档中找不到代码。请问这种行为可能吗? 提前谢谢。