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"
}

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

技术教程推荐

AI技术内参 -〔洪亮劼〕

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

Serverless入门课 -〔蒲松洋(秦粤)〕

Linux内核技术实战课 -〔邵亚方〕

如何读懂一首诗 -〔王天博〕

零基础入门Spark -〔吴磊〕

快手 · 移动端音视频开发实战 -〔展晓凯〕

零基础GPT应用入门课 -〔林健(键盘)〕

后端工程师的高阶面经 -〔邓明〕

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