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

在MongoDB中创建集合之间的关系

唐和洽
2023-03-14

我是MongoDB的新手,我正在创建一个数据库来记录学生和学生在大学学习的课程。有三个集合,称为学生,科目和讲师。学生集合包含studentId、姓名、dob、email、Year。主题集合包含subjectId、subjectName、credits;讲师集合包含lecturerId、lectureName、speciliazation、contactNo、email。学生和学生收藏之间的关系是多对多。在主题和讲师集合之间有一个一对一的关系。我需要将subjectId添加到学生集合中,并将lecturerId添加到主题集合中…有人能告诉我如何创建集合之间的外键关系吗?

共有1个答案

梁丘成和
2023-03-14

在文档包含来自不同集合的引用时,可以使用MongoDB DBRefs。

dbrefs-中有三个字段

>

  • $ref-此字段指定所引用文档的集合

    {
        "_id":ObjectId("53402597d852426020000002"),
        "subjects": [{
           "$ref": "SubjectCollection",
           "$id": ObjectId("534009e4d853427820000001"),
           "$db": "dbname"
        },{
           "$ref": "SubjectCollection",
           "$id": ObjectId("829009e4d856727320000007"),
           "$db": "dbname"
        }],
        "name": "Mukesh Saini",
        "dob": "01-01-1990",
        "email": "ms@gmail.com",
        "year": 2017
    }
    
    var student = db.studentsColl.findOne({"name":"Mukesh Saini"})
    var dbRef = student.subjects[0]
    db[dbRef.$ref].findOne({"_id":(dbRef.$id)})
    

  •  类似资料:
    • MongoDB 中的集合是一组文档的组合,类似于关系型数据库(例如 MySQL)中的数据表。集合存在于数据库中,且没有固定的结构,您可以向集合中插入不同格式或类型的数据。 在 MongoDB 中,您可以使用 createCollection() 方法来创建集合,语法格式如下: db.createCollection(name, options) 参数说明如下: name: 要创建的集合名称; op

    • 我有一个问题。在使用Eclipse创建Spring Boot项目并配置文件后,我的集合没有创建,而在执行后,Eclipse控制台会发出与MongoDB的连接已正常执行的信号。我不明白发生了什么。使用MySQL我们创建了表,因此我期望创建集合,但什么都没有。 总之,部署后,我在MongoDB中看不到我的集合(类annoted)。

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

    • 本文向大家介绍详解MongoDB中创建集合与删除集合的操作方法,包括了详解MongoDB中创建集合与删除集合的操作方法的使用技巧和注意事项,需要的朋友参考一下 创建集合:createCollection() 方法  是用来创建集合. 语法: 基本的 createCollection() 命令语法如下: 在命令中, name 是要创建的集合的名称. Options 是一个文件,用于指定配置的集合 参

    • 例如,我有两个系列: 第一个被命名为“Songs ”,该集合中的文档存储关于宋立科< code >标题 、< code >持续时间 、< code >发行日期和其他的所有元数据。除此之外,还有< code>artist和< code>producer字段,这些字段存储来自“Stars”集合的相关文档的id。 “歌曲”收藏中的文档示例: 你猜的第二个是“星星”集合,这个集合中的文档存储了关于星星的信

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