( 九 )、MongoDB 查询操作

( 九 )、MongoDB 查询操作

 

 

官网示例: https://docs.mongodb.com/manual/tutorial/query-documents/ 

 

1、基础查询

1.1、MongoDB 查询文档使用 find() 方法。find() 方法以非结构化的方式来显示所有文档。

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

1.2、如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:

db.col.find().pretty()

除了 find() 方法之外,还有一个 findOne() 方法,它只返回一个文档。

 

2、MongoDB 与 RDBMS Where 语句比较

如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

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

3、MongoDB AND 条件

MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。

语法格式如下:

>db.col.find({key1:value1, key2:value2}).pretty()

示例:

db.col.find({"userName":"张三", "age":"23"}).pretty()

以上实例中类似于 WHERE 语句:WHERE  userName = '张三'   AND  age = '23'

 

4、MongoDB OR 条件

MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

>db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()

示例:

db.col.find({$or: [{"userName": "张三"}, {"age": "23"}]}).pretty()

以上实例中类似于 WHERE 语句:WHERE  userName = '张三'   OR  age = '23'

 

5、AND 和 OR 联合使用

类似常规 SQL 语句为: where age > 30  AND   (userName = '张三'   OR sex = '男')

db.col.find({"age": {$gt:30},  $or: [{"userName": "张三"},  {"sex": "男"}]}).pretty()

 

6、Limit 与 Skip 方法

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

>db.COLLECTION_NAME.find().limit(NUMBER)

6.2、Skip() 方法

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

>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

注:skip()方法默认参数为 0 。

 

7、MongoDB 排序

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

sort()方法基本语法如下所示:

>db.COLLECTION_NAME.find().sort({KEY:1})

示例:按照年龄降序

>db.col.find({},{"userName":1}).sort({"age": -1})

 "userName": 1 表示显示该字段, 如果是 0 表示不显示, 或者 “userName”: true  | false

 

posted @ 2021-10-18 23:13  邓维-java  阅读(342)  评论(0)    收藏  举报