微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NoSQL note.05

MongoDB查询文档

查询集合所有数据

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐