mongoDB 文档概念

什么是文档

  •   文档是 mongodb 基本的数据组织单元,类似于mysql 中的记录
  •   文档由多个键值对组成,每个键值对表达一个数据项
  •   属于 bson 数据

  ps:

     bson 数据: json 手下的败犬 bson.... 了解就好

文档中的键值对

特点

  • 无序
  • 通过键取其中的值
  • 键不能重复

即文档的域名(相当于mysql 中的字段名),表达数据的基本信息

规定

  1. 使用 utf8
  2. 不能含有 "\0"

ps:

  键可以不加引号,值必须加引号,默认就是 utf8类型

键的存储的值

数据类型

        Type       Number       Alias            Notes
Double 1 “double”
String 2 “string”
Object 3 “object”
Array 4 “array”
Binary data 5 “binData”
Undefined 6 “undefined” Deprecated.
ObjectId 7 “objectId”
Boolean 8 “bool”
Date 9 “date”
Null 10 “null”
Regular 11 “regex”
DBPointer 12 “dbPointer” Deprecated.
JavaScript 13 “javascript”
Symbol 14 “symbol”   Deprecated.
JavaScript 15 “javascriptWithScope”
32-bit integer 16 “int”
Timestamp 17 “timestamp”
64-bit integer 18 “long”
Decimal128 19 “decimal”    New in version 3.4.
Min key -1 “minKey”
Max key 127 “maxKey”

常用的

 整形(int)         整数
浮点型(double) 小数
布尔(bool) true/false
字符串(string) "abcdsd" utf-8 格式
数组(array) [1,2,3,40] 列表
时间(date) 日期/时间
binary Data 二进制格式类型
空值(Null) null 空(关键字)
对象(object) 内部文档
ObjecId ID 对象

注意点

关于 ObjecId 表示每个集合自己的一个不会重复的标识 ID

输入:> db.羊驼.find()
输出: { "_id" : ObjectId("5c76361ab9330b7c152100ff"), "name" : "yangtuo", "age" : 17 }

字段解析:

  "_id": 表示自动生成的域名,表示主键域

  ObjectId: 由24为 16位进制码通过一定算法得到

关于自己自定义:

  必须要在键值中 用 "_id"  然后手动制定

  且,哪怕是自己自定义也不能重复,重复会报错

文档结构设计

1. 一个集合中的文档尽量表达相同的数据内容

2. 文档层次不宜嵌套过多

3. 在集合中文档使用比较自由,原则上结构可以各不相同

场景设计对比mysql

用户注册填写 qq,微信,微博,ins 要求至少写一个

mysql 的话就要4个字段,然后必然产生大量的空数据

mongoDB 的话就可以写那个就存那个

最新文章

  1. PL/SQL循环
  2. Facebook 发布「流程」
  3. Android客户端与服务器
  4. Hive学习路线图(转)
  5. R中list对象属性以及具有list性质的对象
  6. JS链接页面
  7. opencv数据结构总结
  8. 他的第一个NDK的Demo
  9. 在已经部署svn 服务器上,搭建svn项目 成功版
  10. JS图片更换还原操作,通过图片识别标识
  11. 关于Java中基类构造器的调用问题
  12. THUWC2019游记
  13. SSH整合后tomcat启动报错SEVERE: Exception starting filter struts2 java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor
  14. 6.Hystrix-超时设置
  15. MinGW GCC 7.2.0 2017年8月份出炉啦
  16. 自适应Simpson法与积分初步
  17. VS 多工程代码编写
  18. 什么是Less、typescript与webpack?
  19. STM8S 低功耗(1)
  20. 王垠:完全用Linux工作 - imsoft.cnblogs

热门文章

  1. 浏览器登录Dynamics 365 CE没毛病,程序连接却报错。
  2. 用webpack打包加密静态配置文件
  3. 基本的CRUD操作
  4. git 更新分支的信息
  5. PowerDesigner表设计中的P F M分别代表什么意思?
  6. day 6 - 1 知识点小节
  7. logging_modules
  8. 【Linux基础】iconv命令详解(编码转换)
  9. Kubernetes - kubectl proxy
  10. DeveloperGuide Hive UDTF