1.MongoDB基本介绍
2022/4/9 2:19:19
本文主要是介绍1.MongoDB基本介绍,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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的设计初衷就是作为一个分布式数据库,所以能够在分片环境中生成唯一的标识符非常重要。
这篇关于1.MongoDB基本介绍的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MongoDB资料:新手入门完全指南
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享