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 集合中存在的以下地址文档-

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

这一章《MongoDB - 数据库引用》你学到了什么?在下面做个笔记吧!做站不易,你的分享是对我们最大的支持,感谢!😊

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

相关推荐

技术领导力实战笔记 -〔TGO鲲鹏会 - 〕

从0开始学架构 -〔李运华 - 〕

Nginx核心知识150讲 -〔陶辉 - 〕

图解 Google V8 -〔李兵 - 〕

使用新字段插入数据或使用 updateOne mongodb 有条件地更新

错误:“Could not connect to any servers in your MongoDB Atlas cluster”

无法在 ubuntu 18.04 LTS 上正确安装 mongodb

Spring Data MongoRepository save(T) 有时无效

什么是 mongodb 中的“admin”数据库?

REACT 获取发布请求

视频推荐

MongoDB - 16.索引的基本操作(二) 更多视频教程 »