好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码

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查询文档操作实例代码,希望对大家有所帮助!

查看更多关于MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码的详细内容...

  阅读:19次