当前位置: 首页 > news >正文

网页设计与制作商丘到的公司/天津seo招聘

网页设计与制作商丘到的公司,天津seo招聘,安卓app大全下载,苏州网站建设比较靠谱一、MongoDB 关系 MongoDB 的关系表示多个文档之间在逻辑上的相互联系。 文档间可以通过嵌入和引用来建立联系。 1.1 MongoDB 中的关系 MongoDB 中的关系可以是: 1:1 (1对1)1: N (1对多)N: 1 (多对1)N: N (多对多) 接下来我们来考虑下用户与用户地址的关系。 一个…

一、MongoDB 关系

MongoDB 的关系表示多个文档之间在逻辑上的相互联系。
文档间可以通过嵌入和引用来建立联系。

1.1 MongoDB 中的关系

MongoDB 中的关系可以是:

  • 1:1 (1对1)
  • 1: N (1对多)
  • N: 1 (多对1)
  • N: N (多对多)

接下来我们来考虑下用户与用户地址的关系。
一个用户可以有多个地址,所以是一对多的关系。

以下是 user 文档的简单结构:

{"_id":ObjectId("52ffc33cd85242f436000001"),"name": "Tom Hanks","contact": "987654321","dob": "01-01-1991"
}

以下是 address 文档的简单结构:

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

1.2 嵌入式关系

使用嵌入式方法,我们可以把用户地址嵌入到用户的文档中:

{"_id":ObjectId("52ffc33cd85242f436000001"),"contact": "987654321","dob": "01-01-1991","name": "Tom Benzamin","address": [{"building": "22 A, Indiana Apt","pincode": 123456,"city": "Los Angeles","state": "California"},{"building": "170 A, Acropolis Apt","pincode": 456789,"city": "Chicago","state": "Illinois"}]
} 

以上数据保存在单一的文档中,可以比较容易的获取和维护数据。 你可以这样查询用户的地址:

>db.users.findOne({"name":"Tom Benzamin"},{"address":1})

注意:以上查询中 db 和 users 表示数据库和集合。
这种数据结构的缺点是,如果用户和用户地址在不断增加,数据量不断变大,会影响读写性能。

1.3 引用式关系

引用式关系是设计数据库时经常用到的方法,这种方法把用户数据文档和用户地址数据文档分开,通过引用文档的 id 字段来建立关系。

{"_id":ObjectId("52ffc33cd85242f436000001"),"contact": "987654321","dob": "01-01-1991","name": "Tom Benzamin","address_ids": [ObjectId("52ffc4a5d85242602e000000"),ObjectId("52ffc4a5d85242602e000001")]
}

以上实例中,用户文档的 address_ids 字段包含用户地址的对象id(ObjectId)数组。
我们可以读取这些用户地址的对象id(ObjectId)来获取用户的详细地址信息。
这种方法需要两次查询,第一次查询用户地址的对象id(ObjectId),第二次通过查询的id获取用户的详细地址信息。

>var result = db.users.findOne({"name":"Tom Benzamin"},{"address_ids":1})
>var addresses = db.address.find({"_id":{"$in":result["address_ids"]}})

1.4 1其他

var result = db.users.findOne({"name":"Tom Benzamin"},{"address_ids":1})

注意这一句中的 findOne 不能写成 find,因为 find 返回的数据类型是数组,findOne 返回的数据类型是对象。
如果这一句使用了 find,那么下面一句应该改写为:

var addresses = db.address.find({"_id":{"$in":result[0]["address_ids"]}})
http://www.lbrq.cn/news/1064251.html

相关文章:

  • 政府网站建设意见建议/企业网站seo方案
  • top域名的网站打不开/长沙seo优化排名推广
  • 网站推送/今天的新闻发布会
  • 岳阳做公司网站/中央新闻联播
  • 单页面网站可以做自适应网站吗/贵阳搜索引擎排名推广
  • 黑龙江做网站哪家好/上海网站排名seo公司哪家好
  • 旅游微网站建设/网站优化排名查询
  • 苹果14pro max价格/长沙网站seo优化
  • 广告公司做的网站字体侵权/咸阳seo公司
  • 做电影网站失败了/百度号注册官网
  • 开网站做赌博赚钱吗/企业推广方案
  • 会计证继续教育在哪个网站做/电商网站开发平台有哪些
  • 设计网站实现PDF在线阅读需要怎么做/排名优化软件点击
  • 网站介绍流程/竞价托管
  • 在机关网站建设会上讲话/百度快照有什么用
  • 零食公司建立网站的原因/it培训课程
  • 网站盈利方法/谷歌seo建站
  • wordpress建站实例视频/南京百度seo排名
  • 自适应h5网站/百度热榜实时热点
  • 微信开放api/seo关键词优化培训
  • 织梦模板网站好优化吗/网站排名优化查询
  • 上海黄页企业名录电话/网站收录优化
  • 怎么搭建本地网站/微商怎样让客源主动加你
  • 做网站有兼职吗/百度网站下拉排名
  • 上哪儿找做网站/网址大全名称
  • 网站建设需要企业提供哪些素材/seo推广怎么收费
  • 莱芜金点子信息港电子版/百度 seo优化作用
  • 网站内页做友链/今日小说百度搜索风云榜
  • 专做电器的网站/技术短期培训班
  • 杭州公司做网站/百度网盘帐号登录入口
  • Linux U盘识别问题排查指南
  • 13.Redis 的级联复制
  • 一加Ace5无法连接ColorOS助手解决(安卓设备ADB模式无法连接)
  • #C语言——刷题攻略:牛客编程入门训练(四):运算
  • 知识蒸馏 - 基于KL散度的知识蒸馏 HelloWorld 示例 采用PyTorch 内置函数F.kl_div的实现方式
  • C++中多线程和互斥锁的基本使用