MongoDB - 数据库引用

MongoDB - 数据库引用 首页 / MongoDB入门教程 / MongoDB - 数据库引用

如MongoDB关系的最后一章所示,为了在MongoDB中实现规范化的数据库结构,无涯教程使用了引用关系的概念,也称为 Manual References ,其中无涯教程手动将参考文件的ID存储在其他文件中。但是,如果文档包含来自不同集合的引用,则可以使用 MongoDB DBRefs 。

使用DBRef

DBRefs中有三个字段-

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

  • $id    - 此字段指定引用文档的_id字段

  • $db   - 这是一个可选字段,包含所引用文档所在的数据库的名称

考虑一个具有DBRef字段 address 的示例用户user文档,如代码片段所示-

无涯教程网

{
   "_id":ObjectId("53402597d852426020000002"),
   "address": {
   "$ref": "address_home",
   "$id": ObjectId("534009e4d852427820000002"),
   "$db": "learnfk"},
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin"
}

此处的 address DBRef字段指定引用的地址文档位于 learnfk 数据库下的 address_home 集合中,并且ID为534009e4d852427820000002。

以下代码动态地在由 $ref 参数(在本示例中为 address_home )指定的集合中查找由 $id 指定的ID的文档DBRef中的参数。

>var user = db.users.findOne({"name":"Tom Benzamin"})
>var dbRef = user.address
>db[dbRef.$ref].findOne({"_id":(dbRef.$id)})

上面的代码返回 address_home 集合中存在的以下地址文档-

链接:https://www.learnfk.comhttps://www.learnfk.com/mongodb/mongodb-database-references.html

来源:LearnFk无涯教程网

{
   "_id" : ObjectId("534009e4d852427820000002"),
   "building" : "22 A, Indiana Apt",
   "pincode" : 123456,
   "city" : "Los Angeles",
   "state" : "California"
}

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学微服务 -〔胡忠想〕

设计模式之美 -〔王争〕

RPC实战与核心原理 -〔何小锋〕

互联网人的英语私教课 -〔陈亦峰〕

To B市场品牌实战课 -〔曹林〕

云原生架构与GitOps实战 -〔王炜〕

手把手教你落地DDD -〔钟敬〕

深入拆解消息队列47讲 -〔许文强〕

LangChain 实战课 -〔黄佳〕

好记忆不如烂笔头。留下您的足迹吧 :)