美文网首页
MongoDB-常规概念

MongoDB-常规概念

作者: 小橙子_43db | 来源:发表于2020-01-06 15:16 被阅读0次

数据库

一个mongodb中可以建立多个数据库。

MongoDB的默认数据库为"db",该数据库存储在data目录中。

MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。

常用命令:

show dbs:命令可以显示所有数据的列表。

use:连接到一个指定的数据库。

数据库名可以是满足以下条件的任意UTF-8字符串。

不能是空字符串("")。

不得含有' '(空格)、.、$、/、\和\0 (空字符)。

应全部小写。

最多64字节。

有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。

admin:从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。

local:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合

config:当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

集合

集合由一个或多个文档组成,类似于关系型数据库中的二维表,集合存在与数据库中,没有固定的结构,所以mongoDB不同于关系型数据库,集合的字段可以灵活的扩展。集合不用预先创建,在插入第一行文档时会自动创建。

集合由命名的规范:

集合名不能是空字符串""。

集合名不能含有\0字符(空字符),这个字符表示集合名的结尾。

集合名不能以"system."开头,这是为系统集合保留的前缀。

用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。

文档(Document)

文档是一组键值(key-value)对(即 BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。

一个简单的文档例子如下:

{"name":"orange",age:10}

需要注意的是:

文档中的键/值对是有序的。

文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。

MongoDB区分类型和大小写。

MongoDB的文档不能有重复的键。

文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。

文档键命名规范:

键不能含有\0 (空字符)。这个字符用来表示键的结尾。

.和$有特别的意义,只有在特定环境下才能使用。

以下划线"_"开头的键是保留的(不是严格要求的)。

ObjectId

ObjectId 类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是:

前 4 个字节表示创建unix时间戳,格林尼治时间UTC时间,比北京时间晚了 8 个小时

接下来的 3 个字节是机器标识码

紧接的两个字节由进程 id 组成 PID

最后三个字节是随机数

MongoDB 中存储的文档必须有一个 _id 键。这个键的值可以是任何类型的,默认是个 ObjectId 对象

由于 ObjectId 中保存了创建的时间戳,所以你不需要为你的文档保存时间戳字段,你可以通过 getTimestamp 函数来获取文档的创建时间:

> var newObject = ObjectId()> newObject.getTimestamp()ISODate("2017-11-25T07:21:10Z")

ObjectId 转为字符串

> newObject.str5a1919e63df83ce79df8b38f

相关文章

  • MongoDB-常规概念

    数据库 一个mongodb中可以建立多个数据库。 MongoDB的默认数据库为"db",该数据库存储在data目录...

  • MongoDB-基础使用(二)

    前置文章:MongoDB-基础使用(一)[https://www.jianshu.com/p/7bca353127...

  • MongoDB-基础使用(三)

    前置文章:MongoDB-基础使用(一)[https://www.jianshu.com/p/7bca353127...

  • iOS之兼容问题

    iOS之兼容问题 iOS 项目向老版本兼容的常规和非常规方法。 概念 Deplyment TargetAPP能支持...

  • C语言day05-11Mac系统常规指令

    pragma mark Mac系统常规指令 pragma mark 概念 pragma mark 代码

  • Mongodb-主从

    docker inspect --format '{{ .NetworkSettings.IPAddress }}...

  • MongoDB-序

    NOSql :not only sql 显示开发中一直存在一个问题: 数据表 — JDBC读取 — POJO(V...

  • MongoDB-更新

    提供了两类函数:save()、update()update函数语法要求比较麻烦:db.集合.update(更新条件...

  • MongoDB-查询

    任何数据库中查询都是最麻烦的,在MongoDB中对于查询的支持非常到位,有关系运算,逻辑运算,数组运算等等首先对于...

  • MongoDB-基础

    在了解了SpringData JPA 对MongoDB的封装之后,觉得还是有必要了解一下MongoDB本身的基础操作

网友评论

      本文标题:MongoDB-常规概念

      本文链接:https://www.haomeiwen.com/subject/pxvzoctx.html