-
查看所有的db
show dbs
-
切换db
user <db_name>
-
查看当前所在db名称
db
-
删除db**(必须在要删除的db中操作)**
db.dropDatabase()
-
查看db下所有的集合
show tables
show collections
-
创建集合
db.createCollection("abc")
db.createCollection("def", {capped: true, autoIndexId: true, size: 1024, max: 100})
- 往一张不存在的集合中插入一条数据,会自动创建集合
db.test.insert({title: 123})
-
删除集合
db.<collection_name>.drop()
例:
db.abc.drop()
-
插入文档
-
db.<collection_name>.insert({title: 1234})
-
doc=({title: 12345, name: "MongoDB指南"})
db.<collection_name>.insert(doc)
-
db.<collection_name>.save({name: "MongoDB简单指令"}})
-
doc2=({name: "MongoDB从入门到放弃"})
db.<collection_name>.save(doc2)
-
doc3=({_id: "edrftgyhjkgjhfgv2ryuoio", name: "MongoDB从入门到放弃"})
db.<collection_name>.save(doc3)
// 若_id对应值的数据已经存在,则更新这条数据,否则新增一条数据
-
-
更新文档
db.<collection_name>.update({title: 1234}, {$set:{title: "4321"}})
格式:
1
2
3
4
5
6
7
8
9db.<collection_name>.update(
<where>,// 相当于MySQL的where
<update>,// 相当于MySQL的update语句的set,需要跟一些指令:$,$inc,$set
{
upsert: true,// true:如果不存在记录,则新增;false相反,默认
multi: true,// true:只更新第一条匹配的记录;false相反,全部更新, 默认
writeConcern: <document>// 异常级别
}
)案例
1
2
3
4
5
6
7
8
9
10
11
12
131. 只更新第一条记录:
db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
2. 全部更新:
db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
3. 只添加第一条:
db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
4. 全部添加进去:
db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
5. 全部更新:
db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
6. 只更新第一条记录:
db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );-
db.<collection_name>.save()
调用save指令一般需要指定_id
-
删除文档
db.<collection_name>.remove({title: "4321"}, true)
格式
1
2
3
4db.<collection_name>.remove(
<where>,// 相当于MySQL的where
<justOne>// true:只删除一条匹配条件的数据;false:匹配条件的数据全部删除,默认
)-
删除集合中所有数据
db.<collection_name>.remove({})
-
新函数:
db.<collection_name>.deleteMany({})
db.<collection_name>.deleteOne({title: "12345"})
-
-
查询文档
- 普通查询
格式:
1
2
3
4
5db.<collection_name>.find(
<where>, // 查询条件
<colName>// 返回字段名称
)- 创建一个集合,插入三条数据
1
db.user.insert([{name: "cc", age: "29", gender: 1}, {name: "ccc", age: "30", gender: 2}, {name: "c", age: "28", gender: 1}])
-
查询集合中全部数据
普通显示:
db.user.find()
格式化显示:
db.user.find().pretty()
-
查询name="c"的信息
db.user.find({name: "c"}).pretty()
-
查询只返回第一个匹配到的数据
db.user.findOne({name: "c"})
-
AND查询
db.user.find({key: value, key: value})
And查询即是在where条件里面用逗号","分隔
栗子:
1
2
3
4
5
6> db.user.find({name:"cc", gender:1})
>
> ---
> 等同于MySQL:
> select * from user where name = "c" AND gender = 1
> -
OR查询
db.user.find({$or:[{key:value}, {key:value}]})
栗子:
1
2
3
4
5
6
7
8> db.user.find({
> $or:[{name:"c"}, {gender:2}]
> })
>
> ---
> 等同于MySQL:
> select * from user where name = "c" OR gender = 2
> -
AND和OR组合查询
db.user.find({key:value, $or:[{key:value}, {key:value}]})
栗子:
1
2
3
4
5
6> db.user.find({gender:1, $or:[{name: "c"}, {age: "28"}]})
>
> ---
> 等同于MySQL:
> select * from user where gender = 1 AND (name = "c" OR age = "28")
>
运算符
运算符 格式 案例 MySQL对应语句 等于 {key:value}
{key:{$eq:value}}db.user.find({age:“29”})
db.user.find({age:{$eq:“29”}})where age = “29” 大于 {key:{$gt: value}} db.user.find({age:{$gt:“30”}}) where age > “30” 小于 {key:{$lt: value}} db.user.find({age:{$lt: “30”}}) where age < “30” 大于等于 {key:{$gte: value}} db.user.find({age:{$gte:“30”}}) where age >= “30” 小于等于 {key:{$lte: value}} db.user.find({age:{$lte:“30”}}) where age <= “30” 不等于 {key:{ne: value}} db.user.find({age:{$ne:“29”}}) where age != “30” -
模糊查询
- 查询age包含0的:
db.user.find({age:/0/})
- 查询age以2开头的:db.user.find({age:/^2/})
- 查询age以8结束的:db.user.find({age:/8$/})
- 查询age包含0的:
-
分页查询
格式:
1
2
3
4
5
6db.<collection_name>.find().limit(Number).skip(Number)
---
limit(Number)表示查询多少条数据
skip(Number)表示从第几条开始查询-
查询一条数据
- 第一种方法:
db.user.findOne({})
- 第二种方法:
db.user.find({}).limit(1)
- 第一种方法:
-
从第二条数据开始查询一条数据
db.user.find().limit(1).skip(2)
-
-
查询排序
格式:
1
2
3
4
5
6
7db.<collection_name>.find().sort({<key_name>:-1/1})
---
<key_name>:排序字段
-1:倒序
1:正序-
按照年龄倒序
db.user.find().sort({age:-1})
-
按照年龄倒序、性别正序
db.user.find().sort({age:-1, gender:1})
-