NoSQL note.05

查询集合所有数据

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

使用 pretty() 方法,以格式化的易读的方式显示所有文档,语法格式如下:
db.collection_name.find().pretty()

1、查询集合中满足key的数据

可指定显示值:通过对key指定为0或1(0表示不显示,1表示显示指定字段),默认1

// 例:
> db.mycoll.find({
   
   "name":"zs"},{
   
   "_id":0,"name":0}).pretty()

2、嵌套文档查询

通过 “.” 连接infos和height,并以双引号方式来实现指定嵌套文档的查询。如下:

> db.mycoll.find().pretty()
{
        "_id" : ObjectId("606052477626a1f9d32efba8"),
        "name" : "zs",
        "infos" : {
                "height" : 165,
                "weight" : 45
        }
}
> db.mycoll.find({
   
   "infos.height":165})
{ "_id" : ObjectId("606052477626a1f9d32efba8"),"infos" : { "height" : 165, "weight" : 45 } }

3、数组查询

3.1 等价查询

> db.mycoll.find({
   
   "email" : [ "[email protected]", "[email protected]" ]})
//输入整个数组查询

3.2 通过其中一个值查询

> db.mycoll.find({
   
   "email" : "[email protected]" })

3.3 通过元素个数查询

> db.mycoll.find({
   
   "email" : {$size:2} })

4、null字段查询

先插入一段 null 数据:
db.mycoll.insert([{ _id:1 , toy:null },{ _id:2 }])

4.1 查找null字段

> db.mycoll.find({
   
   "_id":1,toy:null})
{ "_id" : 1, "toy" : null } // 查找字段

4.2 查找null值(不存在)

> db.mycoll.find({toy:{$exists:false}})
 { "_id" : 2 }  //查找的值不存在

5、limit和skip

5.1 limit 返回第一条文档
db.mycoll.find().limit(1)

5.2 skip,显示第二条开始的文档
db.mycoll.find().skip(2)

6、$in ‘或’ 查询

// 查找_id=  1 或 2的文档
> db.mycoll.find({_id:{$in:[1,2]}})

7、查询操作符

在这里插入图片描述

操作 格式 范例 RDBMS类似语句

8、AND查询

find() 方法可以传入多个键(key),每个键(key)以逗号隔开。相当于and
db.mycoll.find({key1:value1, key2:value2, ..}).pretty()

9、OR 条件

db.mycoll.find({$or : [ {key1:value1} , {key2:value2} ] })
注:$in 是指定同一个key进行或条件匹配, $or 是指定多个key或条件匹配。

10、AND 和 OR 联合使用

db.mycoll.find({key1: value1, $or: [{ key2:value2 },{key3: value3}]})
满足key1的值并且key2或key3

11、正则表达式使用

有一个值为:"title":"redis"
11.1 查询值的固定后一部分
db.col.find({title:{$regex:/dis$/}}).pretty()(值的后一部分为dis)
11.2 查询值的固定前一部分
db.col.find({title:{$regex:/^re/}}).pretty()(值的前一部分为re)
11.3 查询值的任意一部分
db.col.find({title:{$regex:/ed/}}).pretty()(值的任意中间部分为ed)

12.区间条件查找

>db.col.find({likes:{$gt:100,$lt:120}}) //大于100,小于120

猜你喜欢

转载自blog.csdn.net/weixin_47594116/article/details/115250445