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 的话就可以写那个就存那个

mongoDB 文档概念的更多相关文章

  1. mongoDB 文档操作_删

    mongoDB 文档删除 MySQL对比 mysql delete from table where ... mongo db.collection.deleteOne(query) 删除函数 del ...

  2. MongoDB文档的基本操作

    1. MongoDB的安装方法 (1)下载MongoDB 相应的版本: (2)设置数据文件和日志文件的存放目录: (3)启动MongoDB服务: (4)将MongoDB作为服务启动. 2. Mongo ...

  3. mongodb文档支持的数据类型

    版权声明:转载请标明来源. https://blog.csdn.net/u014285882/article/details/25510377 1. 存储类型 mongodb文档相似于json,但不是 ...

  4. MongoDB文档、集合、数据库简介

    文档 概述 文档是MongoDB的核心概念,是数据的基本单元,非常类似于关系数据库中的行.在MongoDB中,文档表示为键值对的一个有序集.MongoDB使用Javascript shell,文档的表 ...

  5. MongoDB 文档的查询和插入操作

    MongoDB是文档型数据库,有一些专门的术语,和关系型DB相似,但也有差异,例如,Collection类似于关系型DB的Table,document类似于row,key/value pair类似于c ...

  6. 3.从Node.js操作MongoDB文档

    1.更新文档结构,而非SQL 2.数据库更新运算符 在MongoDB中执行对象的更新时,需要确切的指定需要改变什么字段.需要如何改变.不像SQL语句建立冗长的查询字符串来定义更新. MongoDB中可 ...

  7. MongoDB (八) MongoDB 文档操作

    一. MongoDB 插入文档 insert() 方法 要插入数据到 MongoDB 集合,需要使用 MongoDB 的  insert() 或 save() 方法. 语法 insert() 命令的基 ...

  8. MongoDB文档基本操作

    一.插入文档 使用insert()或save()方法向集合插入文档 >db.COLLECTION_NAME.insert(document) 详细用法可以参考MongoDB菜鸟教程 二.查找文档 ...

  9. mongoDB文档操作

    数据库操作无非就是增.删.改.查.这篇主要介绍增.删.改. 1.增 Mongodb插入操作很简单,使用关键字“insert”.实例: > db.test.blog.insert({"h ...

随机推荐

  1. SAP MM 无价值物料管理的一种实现思路

    SAP MM 无价值物料管理的一种实现思路 笔者所在的项目,客户工厂处于先期试生产阶段,尚未开始大规模的商业化生产,但是这并不影响客户集团总部的SAP项目实施.笔者于7月初加入该工厂的第2期SAP项目 ...

  2. 小程序实践(十):textarea实现简单的编辑文本界面

    textarea是官方的原生组件,用于多行输入 简单的例子,监听文本内容.长度,以及设置最大可输入文本长度 wxml <view class='textarea-Style'> <t ...

  3. Flutter路由的跳转、动画与传参(最简单)

    跳转 命名路由 在文件构建时先设置路由参数: new MaterialApp( // 代码 routes: { "secondPage":(BuildContext context ...

  4. 从零学习Fluter(三):Flutter的路由跳转以及state的生命周期

    今天继续研究Flutter,我是在flutter1.0发布后,才玩flutter的,发现在此之前,许多人已经先发制人,玩起了flutter,不知不觉中,我已经被别人摔在了起跑线上,玩过flutter后 ...

  5. mysql 将一个表中的数据复制到另一个表中,sql语句

    1.表结构相同的表,且在同一数据库(如,table1,table2) Sql :insert into table1 select * from table2 (完全复制) insert into t ...

  6. Linux常见系统故障

    Linux常见系统故障 1.修复MBR扇区故障 2.修复GRUB引导故障 3./etc/inittab文件丢失 4.遗忘root用户密码 5.修复文件系统 6.磁盘资源耗尽故障 一.修复MBR扇区故障 ...

  7. MFC打印

    映射模式是MFC甚至SDK界面编程第1个难点.打印则是第2个难点.这2个都是历史遗留的设计缺陷.这些缺陷还不至于到bug程度,但却很难用,不易理解. MFC提供2个类来实现打印(预览),具体有CPri ...

  8. SQLServer之创建Transact-SQL DDL触发器

    DDL触发器原理 DDL 触发器用于响应各种数据定义语言 (DDL) 事件. 这些事件主要与以关键字 CREATE.ALTER.DROP.GRANT.DENY.REVOKE 或 UPDATE STAT ...

  9. LeetCode算法题-Island Perimeter(Java实现)

    这是悦乐书的第238次更新,第251篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第105题(顺位题号是463).您将获得一个二维整数网格形式的地图,其中1代表土地,0代 ...

  10. 如何给python程序加密

    在实际的工作中,有时候我们需要部署自己的Python应用,但这时候我们并不希望别人能够看到自己的Python源程序.因此,我们需要为自己的源代码进行加密,Python已经为我们提供了这样一套工作机制. ...