ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

1.MongoDB基本介绍

2022-04-08 21:34:17  阅读:150  来源: 互联网

标签:基本 MongoDB 可以 介绍 --- 集合 文档 类型 id


1.基本概念

  • 文档是Mongodb中基本数据单元,可以粗略地认为其相当于关系型数据库中的行(但表达力要强的多)
  • 集合类似于关系数据库中的表
  • 一个Mongodb实例可以拥有多个独立的数据库,每个数据库都拥有自己的集合
  • 每个文档都有一个特殊的键'_id',在其所属的集合中是唯一的。

2.数据类型

  Mongodb中的文档可以被认为是一种'类似于"JSON"的形式,因此有仅仅有6中数据类型。有null/布尔值/数字/字符串/数组/对象这几种类型。

  2.1 null类型 

  null类型用于表示空值或不存在的字段   --->  {"x" : null}

  2.2 布尔类型

  布尔类型的值可以为true或者false       --->   {"x" : true}

  2.3 数据类型

  shell默认使用64位浮点数来表示数值类型。因此,下面的数据在shell中看起来是“正常的”  ---> {"x" : 3.14}   {"x" : 3}

  对于整数,可以使用NumberInt或者Numberlog类,它们分别表示4字节和8字节的有号整数   ---> {"x" : Number("3")}    {"x" : Numberlong("3")}

  2.4字符串类型

  任何UTF-8字符串都可以使用字符串类型来表示。 {"x" : "foobar"}

  2.5 日期类型

  mongodb会将日期存储为64为整数,表示子unix纪元(1970年1月1日)以来的毫秒数,不包含时区信息。---> {"x" : new.Date()}

  2.6 正则表达式

  查询可以使用正则表达式,语法与javascript的正则表达式语法相同.  ---> {"x" : /foobar/i}

  2.7 数组类型

  集合或者列表可以表示数组    ---> {"x": ["a","b","c"]}

  2.8内嵌文档

  文档可以嵌套其他文档,此时被嵌套的文档就成了父文档的值    --->{"x" : {"foo" : "bar"}}

  2.9 ObjectID

  Object ID是一个12字节的ID,是文档的唯一标识   ----> {"x" : ObjectId()}

 

这里说说内嵌文档类型和ObjectId

1.内嵌文档

{

    {
          "name" : "John",
          "address" :{
                 "street" : "123 Park Street",
                 "city"    : "Anytown",
                 "state"  : "NY"
            }   
    }
}        

  在这里,“address”键的值是一个内嵌文档,它有自己的“street”、和state键-值对。与数组一样

2.ObjectId和_id

  mongodb中存储的每个文档都必须有一个“_id"键。”_id“的值可以是任何类型,但其默认为objectId。在单个集合中,每个文档"_id"值都必须是唯一的,以确保集合中每个文档都可以被唯一标识,也就是说,如果你有两个集合,那么每个集合都可以有一个"_id"值为123的文档。但是,每个集合里面均只能有一个文档的”_id“值可以为123.

    2.1 objectId

  ObjectId是”_id“的默认类型。objectId采用了轻量化设计,可以很容易地在不同的机器上以全局唯一的方式生成。Mongodb的分布式特性是它使用objectid而不是其他传统做法(比如自动递增主键)的主要原因:跨多个服务器同步自动递增主键既困难又耗时。因为mongodb的设计初衷就是作为一个分布式数据库,所以能够在分片环境中生成唯一的标识符非常重要。

   

  

  

 

  

  

    

    

  

标签:基本,MongoDB,可以,介绍,---,集合,文档,类型,id
来源: https://www.cnblogs.com/zmc60/p/16119838.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有