MongoDB简介
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
下面给大家介绍MongoDB查询文档操作的实例
先把student删除,再重新插入数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
> db.student. drop () true > db.student. insert ([{ "_id" : 1, "name" : "zhangsan" , "age" : 27, "sex" : 1 }, { "_id" : 2, "name" : "lisi" , "age" : 27 } ,{ "_id" : 3, "name" : "wangwu" , "age" : 30 }, { "_id" : 4, "name" : "zhaoliu" , "age" : 28 }, { "_id" : 5, "name" : "qianliu" , "age" : 33 }, { "_id" : 6, "name" : "sunba" , "age" : 32 }]) BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 6, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] }) > db.student.find() { "_id" : 1, "name" : "zhangsan" , "age" : 27 } { "_id" : 2, "name" : "lisi" , "age" : 27 } { "_id" : 3, "name" : "wangwu" , "age" : 30 } { "_id" : 4, "name" : "zhaoliu" , "age" : 28 } { "_id" : 5, "name" : "qianliu" , "age" : 33 } { "_id" : 6, "name" : "sunba" , "age" : 32 } |
1、查询指定键
db.集合名称.find({查询条件},{指定键})
指定键:1表示显示,0表示不显示,_id默认显示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
> db.student.find({},{ name :1}) { "_id" : 1, "name" : "zhangsan" } { "_id" : 2, "name" : "lisi" } { "_id" : 3, "name" : "wangwu" } { "_id" : 4, "name" : "zhaoliu" } { "_id" : 5, "name" : "qianliu" } { "_id" : 6, "name" : "sunba" } > db.student.find({},{_id:0, age:0}) { "name" : "zhangsan" , "sex" : 1 } { "name" : "lisi" } { "name" : "wangwu" } { "name" : "zhaoliu" } { "name" : "qianliu" } { "name" : "sunba" } > db.student.find({},{_id:0, name :1}) { "name" : "zhangsan" } { "name" : "lisi" } { "name" : "wangwu" } { "name" : "zhaoliu" } { "name" : "qianliu" } { "name" : "sunba" } |
2、各种查询方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
$lt:< $lte:<= $gt:> $gte:>= $ne:!= > db.student.find({age:{$lt:30}}) { "_id" : 1, "name" : "zhangsan" , "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi" , "age" : 27 } { "_id" : 4, "name" : "zhaoliu" , "age" : 28 } > db.student.find({age:{$ne:27}}) { "_id" : 3, "name" : "wangwu" , "age" : 30 } { "_id" : 4, "name" : "zhaoliu" , "age" : 28 } { "_id" : 5, "name" : "qianliu" , "age" : 33 } { "_id" : 6, "name" : "sunba" , "age" : 32 } |
$in:包含
$nin:不包含
1
2
3
4
5
6
7
8
|
> db.student.find({age:{$ in :[27,28]}}) { "_id" : 1, "name" : "zhangsan" , "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi" , "age" : 27 } { "_id" : 4, "name" : "zhaoliu" , "age" : 28 } > db.student.find({age:{$nin:[27,28]}}) { "_id" : 3, "name" : "wangwu" , "age" : 30 } { "_id" : 5, "name" : "qianliu" , "age" : 33 } { "_id" : 6, "name" : "sunba" , "age" : 32 } |
$or:或者
1
2
3
4
5
|
> db.student.find({$ or :[{age:{$lt:29}}, { name : "sunba" }]}) { "_id" : 1, "name" : "zhangsan" , "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi" , "age" : 27 } { "_id" : 4, "name" : "zhaoliu" , "age" : 28 } { "_id" : 6, "name" : "sunba" , "age" : 32 } |
null:空值
1
2
3
4
5
6
|
> db.student.find({sex: null }) { "_id" : 2, "name" : "lisi" , "age" : 27 } { "_id" : 3, "name" : "wangwu" , "age" : 30 } { "_id" : 4, "name" : "zhaoliu" , "age" : 28 } { "_id" : 5, "name" : "qianliu" , "age" : 33 } { "_id" : 6, "name" : "sunba" , "age" : 32 } |
$type:键是某种类型的
double:1
string:2
...
1
2
3
4
5
6
7
8
9
10
11
|
> db.student. insert ({_id:7, name :7, age:70}) WriteResult({ "nInserted" : 1 }) > db.student.find({ name : {$type: 2}}) { "_id" : 1, "name" : "zhangsan" , "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi" , "age" : 27 } { "_id" : 3, "name" : "wangwu" , "age" : 30 } { "_id" : 4, "name" : "zhaoliu" , "age" : 28 } { "_id" : 5, "name" : "qianliu" , "age" : 33 } { "_id" : 6, "name" : "sunba" , "age" : 32 } > db.student.find({ name : {$type: 1}}) { "_id" : 7, "name" : 7, "age" : 70 } |
正则表达式
1
2
|
> db.student.find({ name : /si\b/}) { "_id" : 2, "name" : "lisi" , "age" : 27 } |
db.集合名称.findOne({查询条件},{指定键})
查询出符合条件的第一条数据
1
2
|
> db.student.findOne() { "_id" : 1, "name" : "zhangsan" , "age" : 27, "sex" : 1 } |
db.集合名称.find({查询条件},{指定键}).limit(数字)
查询前几条数据
1
2
3
4
|
> db.student.find().limit(3) { "_id" : 1, "name" : "zhangsan" , "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi" , "age" : 27 } { "_id" : 3, "name" : "wangwu" , "age" : 30 } |
db.集合名称.find({查询条件},{指定键}).skip(数字)
跳过前几条数据
1
2
3
4
5
6
|
> db.student.find().skip(2) { "_id" : 3, "name" : "wangwu" , "age" : 30 } { "_id" : 4, "name" : "zhaoliu" , "age" : 28 } { "_id" : 5, "name" : "qianliu" , "age" : 33 } { "_id" : 6, "name" : "sunba" , "age" : 32 } { "_id" : 7, "name" : 7, "age" : 70 } |
可以使用limit()和skip()实现分页
1
2
3
4
5
6
7
8
9
10
|
> db.student.find().skip(0).limit(3) { "_id" : 1, "name" : "zhangsan" , "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi" , "age" : 27 } { "_id" : 3, "name" : "wangwu" , "age" : 30 } > db.student.find().skip(3).limit(3) { "_id" : 4, "name" : "zhaoliu" , "age" : 28 } { "_id" : 5, "name" : "qianliu" , "age" : 33 } { "_id" : 6, "name" : "sunba" , "age" : 32 } > db.student.find().skip(6).limit(3) { "_id" : 7, "name" : 7, "age" : 70 } |
db.集合名称.find().sort({键:数字})
数字为1表示升序,数字为2表示降序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
> db.student.find().sort({age:1}) { "_id" : 1, "name" : "zhangsan" , "age" : 27, "sex" : 1 } { "_id" : 2, "name" : "lisi" , "age" : 27 } { "_id" : 4, "name" : "zhaoliu" , "age" : 28 } { "_id" : 3, "name" : "wangwu" , "age" : 30 } { "_id" : 6, "name" : "sunba" , "age" : 32 } { "_id" : 5, "name" : "qianliu" , "age" : 33 } { "_id" : 7, "name" : 7, "age" : 70 } > db.student.find().sort({age:1, _id:-1}) { "_id" : 2, "name" : "lisi" , "age" : 27 } { "_id" : 1, "name" : "zhangsan" , "age" : 27, "sex" : 1 } { "_id" : 4, "name" : "zhaoliu" , "age" : 28 } { "_id" : 3, "name" : "wangwu" , "age" : 30 } { "_id" : 6, "name" : "sunba" , "age" : 32 } { "_id" : 5, "name" : "qianliu" , "age" : 33 } { "_id" : 7, "name" : 7, "age" : 70 } |
以上内容是小编给大家介绍的MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码,希望对大家有所帮助!