mongodb数据库扩展名_MongoDB 数据库引用
MongoDB 数据库引用
在上一章节MongoDB关系中我们提到了MongoDB的引用来规范数据结构文档。
MongoDB 引用有两种:
手动引用(Manual References)
DBRefs
DBRefs vs 手动引用
考虑这样的一个场景,我们在不同的集合中 (address_home, address_office, address_mailing, 等)存储不同的地址(住址,办公室地址,邮件地址等)。
这样,我们在调用不同地址时,也需要指定集合,一个文档从多个集合引用文档,我们应该使用 DBRefs。
使用 DBRefs
DBRef的形式:
{ $ref : , $id : , $db : }
三个字段表示的意义为:
$ref:集合名称
$id:引用的id
$db:数据库名称,可选参数
以下实例中用户数据文档使用了 DBRef, 字段 address:
{
"_id":ObjectId("53402597d852426020000002"),
"address": {
"$ref": "address_home",
"$id": ObjectId("534009e4d852427820000002"),
"$db": "runoob"},
"contact": "987654321",
"dob": "01-01-1991",
"name": "Tom Benzamin"
}
address DBRef 字段指定了引用的地址文档是在 runoob 数据库下的 address_home 集合,id 为 534009e4d852427820000002。
以下代码中,我们通过指定 $ref 参数(address_home 集合)来查找集合中指定id的用户地址信息:
>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数据库扩展名_MongoDB 数据库引用相关推荐
- mongodb数据库扩展名_MongoDB权威指南
MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.它的特点是高性能.易部署.易使用,存储数据非常方便. MongoDB是一个介于关系 ...
- mongodb数据库扩展名_MongoDB如何存储数据
想要深入了解MongoDB如何存储数据之前,有一个概念必须清楚,那就是Memeory-Mapped Files. Memeory-Mapped Files 下图展示了数据库是如何跟底层系统打交道的. ...
- mongodb数据库扩展名_MongoDB学习笔记:MongoDB 数据库的命名、设计规范
第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ 有特殊含义,需要避免 区分大小写 键不能重复 键/值对有序 实践约束 ...
- mongodb数据库扩展名_MongoDB文件型数据库
初始MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库 ...
- oracle 数据库名/数据库实例名[SID]/数据库域名/全局数据库名
一.数据库名 就是在你安装oracle软件过程中创建的数据库,或者是安装完后,自己再创建的数据名称.主要用于一个oracle中安装了多个库, 他们之间的区分.一个库会在windows的服务中生成 ...
- 关于数据库登陆名和数据库用户名的一点点心得
记得自己从开始编写与sql数据库相关的程序起,就一直采用sa登陆,也没有听人说过用户名和登陆名之间有什么关系,甚至都不知道这些东西,只知道sa权限很大,可以执行数据库中的所有东西,直至暑假,在看到某一 ...
- DB扩展名的数据库文件怎么打开:两种db数据库的打开方式
两种db数据库的打开方式 现在桌面级的各种管理系统使用的数据库都是比较常见的类型,比如Access数据库(扩展名为mdb).xBase类数据库(扩展名为dbf),但有两种扩展名同为db的数据库,分属两 ...
- mongodb 字段出现次数_MongoDB数据库
内容回顾 Xpath选择器 不要求记忆,只要混个眼熟即可 基于openpyxl模块爬取豆瓣电影 单页爬取 多页爬取 1.校验请求头里面是否有User-Agent参数 请求头里面加上即可 2.限制IP规 ...
- oracle系统库名,Oracle 札记之 一:数据库名,数据库实例名,数据库域名,操作系统环境变量...
数据库名是用于区分数据库的一个内部标识,是以二进制方式存储在数据库控制文件中的参数.数据库创建之后不能再修改这个参数.数据库创建后,它被写入数据库参数文件pfile或Spfile中.格式如下: ... ...
最新文章
- 在场景中添加光线——在Deferred Shading引擎中添加阴影能力
- Windows MySQL8.0安装出错解决方案(Start Server 失败)
- 共同好友推荐java_【开班典礼】初雪迎初见,白色浪漫中,他们选择从此与Java相伴!...
- Ubuntu Linux 18.10下面安装魔法门之英雄无敌3
- jquery正则表达式验证:验证全是数字
- Linux 进程学习(四)------ sigaction 函数
- python二维数组换行输出_关于用python绘制二维数组的问题
- java 蓝桥杯算法训练 瓷砖铺放(题解)
- ML Mastery 博客文章翻译(二)20220116 更新
- ccpc中国大学生首届程序设计竞赛
- 破解sourceInsight4
- 选择本地照片之后即显示在Img中(客户体验)
- QPSK和16QAM调制
- 全网最最最详细的软件著作权申请步骤
- jasypt.jar 1.9.2下载,加密解密
- Fone Keeper Mac版,帮你轻松恢复iOS数据
- 英特尔第11代处理器(Intel Tiger Lake) 疑难解答 - 安装Windows 10时找不到驱动器
- linux环境MySQL8.0安装
- 宣城市高新技术企业认定补贴政策 申报流程整理分析
- 电商订舱哪家靠谱 广州力其
热门文章
- Android 5.0+(RecycleView、CardView、Palette)
- 何以笙箫默,一部有剧情的创意广告集?
- FreeImage 结合 VB6 使用技巧
- C# SetCursorPos用法
- AIR切换SDK版本时遇到的问题
- 新书出炉:我的视频我做主:Premiere Pro CS5实战精粹(1CD)(彩印)
- linux ACL应用学习
- 常用的C#方法【Format.CS】
- Linux 命令(60)—— strip 命令
- C++ 栈展开如何防止内存泄露