MongoDB常用指令(学习笔记)

一、MongoDB常见类型

MongoDB常见类型 说明
Object ID 文档ID
String 字符串,最常用,必须是有效的UTF-8
Boolean 存储一个布尔值,true或false
Integer 整数可以是32位或64位,这取决于服务器
Double 存储浮点值
Arrays 数组(js)或列表(python),多个值存储到一个键
Object 用于嵌入式的文档,即一个值为一个文档
Null 存储Null值
Timestamp 时间戳
Date 存储当前日期或时间的UNIX时间格式

二、数据库操作

1、显示所有数据库列表

show dbs

注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。如果没有插入数据,show dbs则查不到该数据库。

2、切换或创建数据库(如果数据库不存在,则创建数据库,否则切换到指定数据库。)

use 数据库名

3、删除数据库

db.dropDatabase()

三、集合操作

MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。

1、创建集合

db.createCollection(集合名, [可选参数])

在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。

> db.mycol2.insert({"name" : "名字"})
> show collections
mycol2

2、查看集合

show collections/show tables

3、删除集合

db.collection.drop()

四、集合数据操作

1、新增

db.集合名.insert({“键名1”:值1, “键名2”: 值2 …})

例如

db.test.insert({“name”:“张三”,“age”:18})

2、删除

db.集合名.remove({查询条件})

db.集合名.remove({}) # 删除全部数据

例如

db.test.remove({“name”:“张三”})

db.test.remove({})

3、修改

3.1 Update

update() 方法用于更新已存在的文档。

db.集合名.update({查询条件}, {修改后结果}) #修改整行

db.集合名.update({查找条件}, {$set:{“要修改的字段名1”:修改后的值, “要修改的字段名2”: “值2”}}) #修改指定字段的值

3.2 Save

save() 方法通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入。

db.集合名.save({查询条件})

例如

db.test.update({“name”:“张三”}, {“name”:“张三”, “age”:25})

db.test.update({“name”:“张三”}, {$set:{“age”:26}})

4、查询

db.集合名.findOne() # 查询一行

db.集合名.find().pretty() # 格式化打印

db.集合名.find({查找条件}) # 条件查询,不带参数查全部

例如:db.test.find({“age”:18})

操作 格式 范例 RDBMS中的类似语句
等于 db.col.find({"likes":"50"}).pretty() where likes = "50"
小于 {<key>:{\(lt:\<value>}} | db.col.find({"likes":{\)lt:50}}).pretty() where likes < 50
小于或等于 {<key>:{\(lte:\<value>}} | db.col.find({"likes":{\)lte:50}}).pretty() where likes <= 50
大于 {<key>:{\(gt:\<value>}} | db.col.find({"likes":{\)gt:50}}).pretty() where likes > 50
大于或等于 {<key>:{\(gte:\<value>}} | db.col.find({"likes":{\)gte:50}}).pretty() where likes >= 50
不等于 {<key>:{\(ne:\<value>}} | db.col.find({"likes":{\)ne:50}}).pretty() where likes != 50

AND 查询
db.集合名.find({key1: value1, key2:value2})

相当于SQL中的: WHERE key1=value1 AND key2=value2;

OR 查询
db.集合名.find({$or: [{key1: value1}, {key2:value2}]}).pretty()

相当于 WHERE key1=value1 OR key2=value2;

AND 和 OR 联合使用

db.集合名.find({"key1": value1}, $or: [{"key2": "value2"},{"key3": "value3"}]}).pretty()

相当于 WHERE key1=value1 AND (key2=value2 OR key3=value3);

COUNT() 统计条数
统计时使用 count()函数即可,如果需要筛选也是在 find 方法中传筛选条件即可。
db.集合名.find().count();

$SIZE 数组元素个数
$size可以用它查询特定长度的数组

db.集合名.find({“键名”: {$size:num} })

$IN 和 \$NOT IN 包含

db.集合名.find({“键名”: {$in:[值1, 值2, 值3 …]} })

db.集合名.find({“键名”: {$nin:[值1, 值2, 值3 …]} })

$REGEX 正则表达式匹配

db.集合名.find({name: {$regex: /^B.*/}}); # 匹配以B开头的单词

$EXISTS 判断字段是否存在

db.集合名.find({“键名”: {$exist: true|false} })

当值为true时,\(exists匹配包含字段的文档,包括字段值为null的文档;当为false时,\)exists返回不包含对应字段的文档。

SKIP() 和 LIMIT() 方法

如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

db.集合名.find({key1: value1, key2:value2}).limit(NUMBER)

我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

db.集合名.find().limit(NUMBER).skip(NUMBER)

SORT() 排序方法

在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。

db.集合名.find().sort({key:1})

CREATEINDEX() 索引方法

  1. 查看集合索引
    db.col.getIndexes()

  2. 查看集合索引大小
    db.col.totalIndexSize()

  3. 删除集合所有索引
    db.col.dropIndexes()

  4. 删除集合指定索引
    db.col.dropIndex("索引名称")

posted @ 2022-07-01 10:59  B1nbin  阅读(132)  评论(0编辑  收藏  举报
/*
*/