数据库服务运维(Mongo DB基本操作)

释放双眼,带上耳机,听听看~!

1.查看

我们可以使用 db 查看当前使用的数据库:

> db
test

此操作返回默认数据库 test 。

查看 MongoDB 中所有可用的数据库,我们可以使用 show dbs 命令,该命令是 show databases 的缩写,会显示已有的数据库名和使用的大小

show dbs
admin 0.000GB
local 0.000GB

左边一列是数据库名,右边一列是数据库所占空间大小。

admin: 从权限的角度来看,这是 “root” 数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。

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

2.选择

在 MongoDB 中,数据库由文档构成的集合组成。

选择一个数据库去使用,需要如下语法:

use <db>

<db> 指的是数据库的名字。

你可以切换到一个不存在的数据库,比如说我们切换到名为 wanneng001这个数据库。

3.创建

在我们刚刚使用 use 切换数据库的时候,还并未创建该数据库,而在我们往该数据库中插入第一条数据时(比如创建集合或者插入文档),系统会自动创建该数据库。如下所示我们插入第一条文档。

> db.users.insertOne({name: “Aiden”, age: 30, email: “luojin@simplecloud.cn”, addr: [“CD”, “SH”]})

输出结果如下:

acknowledged :执行命令返回的状态,为 true 说明执行成功。 insertedId :在 MongoDB 中,存储于集合中的每一个文档都需要一个唯一的 _id 字段作为 primary_key。如果一个插入文档操作遗漏了_id 字段,MongoDB 会自动为_id 字段生成一个 ObjectId 。 现在你使用 show dbs 去查看有哪些数据库,会发现多了一个名叫 wanneng001 的数据库。

5.创建普通集合

MongoDB 可以创建普通集合。比如我们来创建一个名为 wanneng_col1 的普通集合:

提示信息 { "ok" : 1 } 显示我们创建成功

MongoDB 除了可以创建普通的集合外,还可以创建一种特殊的集合,即固定集合,可以指定集合的大小,当集合容量已满的时候,我们再向集合添加文档,会覆盖之前原有的内容,以保持固定大小。

创建的语法格式如下:

<name> 代表集合的名字,{...} 花括号中为可配置项,这里我们列举了一些常见的配置项,配置项的含义如下:

  • capped可以配置 true 或 false,默认值为 false 。指定为 true 的时候,即为固定集合,此时需要指定 size
  • autoIndexId可以配置 true 或 false,默认值为 true。每一个文档都有一个 _id 字段,该字段是主键,用于唯一的确定一条记录,如果往 MongoDB 中插入数据时没有指定 _id 字段,那么会自动产生一个 _id 字段。这里配置项指定为 false 时,不会自动生成该字段。
  • size对于固定集合时指定可以集合的大小,单位为 byte
  • max指定固定集合运行的文档数目

例如,我们创建 一个固定集合 wanneng_col2 ,指定固定大小为 1024 byte :

db.createCollection(“wanneng_col2”, {capped:true, size:1024})

6.查看

我们可以通过 show collections 来查看数据库中的集合

在上面的结果中,多了一个 users 。users 是在 2.3 中执行的插入语句创建的,对于不存在的集合,在插入数据时,会创建对应的集合

7.删除

删除集合使用 db.collection.drop() ,这里的 collection 为

8.插入

MongoDB 存储的文档记录是一个 BSON 对象,类似于 JSON 对象,由键值对组成。比如这样一条用户记录:

在上述示例中,users 是一个集合,而 {...} 花括号中的内容为文档内容。关于 BSON 支持的数据类型,可以参考 MongoDB 的官方链接:bson-types

对于文档的插入操作,一般有两种常用的插入方式:

db.collection.insertOne(<document>)

db.collection.insertMany([ <document 1> , <document 2>, … ])

collection 为集合名称。<document> 为要插入的文档内容。

对于上述的两种操作,我们可以很容易从字面上理解它们的区别,即插入一条和插入多条,如下的简单示例:

9.查询

我们查看一个集合中的文档,可以使用如下语法:

db.collection.find()

# collection 为集合名称

例如,我们查看 users 的文档:

> db.users.find() copy

输出结果如下:

除此之外,我们还可以指定过滤条件:

指定查询的过滤条件是通过在 find() 中使用相应的表达式:

db.users.find({ <field1>: <value1>, … })

例如命令 db.users.find({"name":"Tom"}) ,以我们更熟悉的 SQL 操作表示如下:

SELECT * FROM users WHERE name=”Tom”

这种方式仅仅对于使用等号(=) 而言,对于一些其它的操作符,在 MongoDB 中也有对应的实现,如下:

还有一个较为特殊的用法,为 $exists,判断是否存在。例如是否存在某个字段。

如上所示,我们列举了部分常见的运算符。

  • 对于数值判断,大于,小于等使用操作:

使用 $exists 和 $in :

逻辑运算符 $and, $or , $not 的使用:

另外,还有对字段为一个数组的查询操作: $all 用来匹配数组中包含所有的指定元素。

$elemMatch 查询数组中至少一个元素满足所有指定条件的文档。对于使用其使用方式,我们给出一个官方的示例:(以下只是示例,不用输入。)

$size 匹配数组的大小,这里指的是数组长度。

10.删除

MongoDB 提供了如下删除文档的方法:

db.collection.deleteOne()

db.collection.deleteMany()

简单示例如下:

入门日记数据库

数据库服务运维(Mongo DB导入导出)

2020-4-28 21:13:01

MySql数据库入门日记

数据库服务运维(Mysql备份与恢复)

2020-4-28 21:16:53

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索