博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB一对多存储
阅读量:6281 次
发布时间:2019-06-22

本文共 652 字,大约阅读时间需要 2 分钟。

hot3.png

一个针对于顾客和其多个地址关系建模的一个例子

分别使用规范化(引用)和非规范化(内嵌)存储:

1、规范化存储:

(在一个规范化的数据模型中, address 文档包含一个对父文档 patron 的引用):

 

[html]  

 

  1. {  
  2.    _id: "joe",  
  3.    name: "Joe Bookreader"  
  4. }  
  5.   
  6. {  
  7.    patron_id: "joe",  
  8.    street: "123 Fake Street",  
  9.    city: "Faketon",  
  10.    state: "MA",  
  11.    zip: "12345"  
  12. }  
  13.   
  14. {  
  15.    patron_id: "joe",  
  16.    street: "1 Some Other Street",  
  17.    city: "Boston",  
  18.    state: "MA",  
  19.    zip: "12345"  
  20. }  

 

 

2、非规范化存储:

(把 address 数据直接内嵌到 patron 文档里面)

 

[html]  

 

  1. {  
  2.    _id: "joe",  
  3.    name: "Joe Bookreader",  
  4.    addresses: [  
  5.                 {  
  6.                   street: "123 Fake Street",  
  7.                   city: "Faketon",  
  8.                   state: "MA",  
  9.                   zip: "12345"  
  10.                 },  
  11.                 {  
  12.                   street: "1 Some Other Street",  
  13.                   city: "Boston",  
  14.                   state: "MA",  
  15.                   zip: "12345"  
  16.                 }  
  17.               ]  
  18.  }  

 

转载于:https://my.oschina.net/architectliuyuanyuan/blog/1621486

你可能感兴趣的文章
SHELL实现跳板机,只允许用户执行少量允许的命令
查看>>
SpringBoot 整合Redis
查看>>
2014上半年大片早知道
查看>>
Android 6.0指纹识别App开发案例
查看>>
正文提取算法
查看>>
轻松学PHP
查看>>
Linux中的网络监控命令
查看>>
this的用法
查看>>
windows下安装redis
查看>>
CentOS7 yum 安装git
查看>>
启动日志中频繁出现以下信息
查看>>
httpd – 对Apache的DFOREGROUND感到困惑
查看>>
分布式锁的一点理解
查看>>
idea的maven项目,install下载重复下载本地库中已有的jar包,而且下载后jar包都是lastupdated问题...
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web服务器
查看>>
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>
jQuery的validate插件
查看>>
5-4 8 管道符 作业控制 shell变量 环境变量配置
查看>>