mongoDB

概念

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键

数据库

数据库的概念跟关系型数据库(如 MySQL)中是一样的。
一个 mongoDB 中可以建立多个数据库。
默认数据库为 db。

命令

show dbs # 查看所有数据库

db # 查看当前连接的数据库

use xx # 连接到 xx 数据库,如果数据库不存在,则创建数据库

集合

集合类似于关系型数据库中的 table。
集合存在于数据库中,没有固定结构,这意味着可以在集合中插入不同的文档,但是一般情况下文档都有一定的关联性。

文档

文档类似于关系型数据库中的 行。
文档是一组 键值对

数据类型

数据类型 描述
String 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。
Boolean 布尔值。用于存储布尔值(真/假)
Double 双精度浮点值。用于存储浮点值。
Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比
Array 用于将数组或列表或多个值存储为一个键
Timestamp 时间戳。记录文档修改或添加的具体时间。
Object 用于内嵌文档
Null 用于创建空值
Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
Object ID 对象 ID。用于创建文档的 ID。
Binary Data 二进制数据。用于存储二进制数据。
Code 代码类型。用于在文档中存储 JavaScript 代码。
Regular expression 正则表达式类型。用于存储正则表达式。

操作

查询文档

语法:

db.collection.find(query, projection)
query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

例子:

查询所有: 
db.chat_calls.find()

按条件查询:
db.chat_calls.find({"machine_id":"GV2_T1","call_uuid":"01QJI91IMKENL3L8A0Q11B5AES00007V"})

只返回具体字段:
db.chat_calls.find({"machine_id":"GV2_T1","call_uuid":"01QJI91IMKENL3L8A0Q11B5AES00007V"}, { _id:0,machine_id:1})

插入文档

语法:

db.COLLECTION_NAME.insert(document)
或
db.COLLECTION_NAME.save(document)

例子:

db.chat_calls.insert(
{"machine_id":"test","call_uuid":"test"})

更新文档

语法:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。

例子:

db.chat_calls.update(
	{"machine_id":"test","call_uuid":"test"}, 
	{
		$set:{"machine_id":"test111"}
	}
)
运算符 $set,将 machine_id 修改为 test111

save() 方法,通过 _id 主键存在则更新,如果不存在则新增。

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

删除文档

db.collection.deleteOne()
db.collection.deleteMany()

语法:

db.collection.deleteOne(
   <filter>,
   {
      writeConcern: <document>,
      collation: <document>,
      hint: <document|string>       
   }
)


db.collection.deleteMany(
   <filter>,
   {
      writeConcern: <document>,
      collation: <document>
   }
)

例子:

db.chat_calls.deleteOne({"machine_id":"test"})

https://docs.mongoing.com/

2021/10/18