返回目录
查询文档可以用find()方法查询全部文档,可以用findOne()查询第一个文档,当然还可以根据条件操作符和$type操作符查询满足条件的文档。
MongoDB用find()查询指定集合的全部文档
格式
db.COLLECTION_NAME.find()范例
>db.user.find() {"_id":ObjectId("58e1d2f0bb1bbc3245fa754b"),"name":"liruihuan","age":18,"sex":"man"} {"_id":ObjectId("58e1d2f0bb1bbc3245fa754d"),"name":"user1","age":19,"sex":"man"} {"_id":ObjectId("58e1d2f0bb1bbc3245fa754e"),"name":"user2","age":20,"sex":"woman"} {"_id":ObjectId("58e1d2f0bb1bbc3245fa754f"),"name":"user3","age":19,"sex":"woman"} >如果想要格式化显示查询结果,我们需要用pretty()方法
格式如下
db.COLLECTION_NAME.find().pretty()再次显示查询结果如下
>db.user.find().pretty() { "_id":ObjectId("58e1d2f0bb1bbc3245fa754b"), "name":"liruihuan", "age":18, "sex":"man" } { "_id":ObjectId("58e1d2f0bb1bbc3245fa754d"), "name":"user1", "age":19, "sex":"man" } { "_id":ObjectId("58e1d2f0bb1bbc3245fa754e"), "name":"user2", "age":20, "sex":"woman" } { "_id":ObjectId("58e1d2f0bb1bbc3245fa754f"), "name":"user3", "age":19, "sex":"woman" } >除了find()方法,还有一个findOne()方法,它只会返回一个文档
>db.user.findOne() { "_id":ObjectId("58e1d2f0bb1bbc3245fa754b"), "name":"liruihuan", "age":18, "sex":"man" }如果你熟悉sql,那么下表可以更好的理解MongoDB条件查询
操作 格式 范例 RDBMS中的类似语句 等于 {<key>:<value>} db.user.find({"name":"liruihuan"}).pretty() wherename=liruihuan 小于 {<key>:{$lt:<value>}} db.user.find({"age":{$lt:18}}).pretty() whereage<18 小于或等于 {<key>:{$lte:<value>}} db.user.find({"age":{$lte:18}}).pretty() whereage<=18 大于 {<key>:{$gt:<value>}} db.user.find({"age":{$gt:18}}).pretty() whereage>18 大于或等于 {<key>:{$gte:<value>}} db.user.find({"age":{$gte:18}}).pretty() whereage>=18 不等于 {<key>:{$ne:<value>}} db.user.find({"age":{$ne:18}}).pretty() whereage!=18范例
1、查询user集合中name="liruihuan"的文档,代码如下
>db.user.find({"name":"liruihuan"}).pretty() { "_id":ObjectId("58e1d2f0bb1bbc3245fa754b"), "name":"liruihuan", "age":18, "sex":"man" } >2、查询user集合中age>19的文档,代码如下
>db.user.find({"age":{$gt:19}}).pretty() { "_id":ObjectId("58e1d2f0bb1bbc3245fa754e"), "name":"user2", "age":20, "sex":"woman" } >为了更好的理解条件操作符,可以用英文解释一下
$gt--greaterthan $gte--gtequal $lt--lessthan $lte--ltequal $ne--notequalMongoDB中的and条件
MongoDB的find()方法可以传入多个键(key),每个键(key)以逗号隔开,MongoDB会把这些键作为and条件,及常规SQL的AND条件。
格式
db.collection.find({key1:value1,key2:value2}).pretty()范例
查询user集合中name值为liruihuan且age值为18的文档
>db.user.find({"name":"liruihuan","age":18}).pretty() { "_id":ObjectId("58e1d2f0bb1bbc3245fa754b"), "name":"liruihuan", "age":18, "sex":"man" }此实例类似于sql中where条件
WHEREname=liruihuanANDage=18MongoDB中的or条件
MongoDB中or条件用$or关键字
格式
db.collection.find( { $or:[ {key1:value1},{key2:value2} ] } ).pretty()范例
查询user集合中name值为liruihuan或name值为user1的文档
>db.user.find({$or:[{"name":"liruihuan"},{"name":"user1"}]}).pretty() { "_id":ObjectId("58e1d2f0bb1bbc3245fa754b"), "name":"liruihuan", "age":18, "sex":"man" } { "_id":ObjectId("58e1d2f0bb1bbc3245fa754d"), "name":"user1", "age":19, "sex":"man" } >此实例类似于sql中where条件
WHEREname=liruihuanORname="user1"MongoDB中and和or结合使用
范例
查询user集合中age值大于17且(name值为liruihuan或name值为user1)的文档
>db.user.find({"age":{$gt:17},$or:[{"name":"liruihuan"},{"name":"user1"}]}).pretty() { "_id":ObjectId("58e1d2f0bb1bbc3245fa754b"), "name":"liruihuan", "age":18, "sex":"man" } { "_id":ObjectId("58e1d2f0bb1bbc3245fa754d"), "name":"user1", "age":19, "sex":"man" } >此实例类似于sql中where条件
WHEREage>17(name=liruihuanORname="user1")**注:**and条件是在大括号中,or条件是在中括号里的
基于BSON类型来查询集合中匹配的数据类型,并返回结果。
下表列举了可使用的数据类型
类型 数字 备注 Double 1 String 2 Object 3 Array 4 Binarydata 5 Undefined 6 已废弃。 Objectid 7 Boolean 8 Date 9 Null 10 RegularExpression 11 JavaScript 13 Symbol 14 JavaScript(withscope) 15 32-bitinteger 16 Timestamp 17 64-bitinteger 18 Minkey 255 Querywith -1. Maxkey 127范例
查询user集合中name为String类型的文档
>db.user.find({"name":{$type:2}}).pretty() { "_id":ObjectId("58e1d2f0bb1bbc3245fa754b"), "name":"liruihuan", "age":18, "sex":"man" } { "_id":ObjectId("58e1d2f0bb1bbc3245fa754d"), "name":"user1", "age":19, "sex":"man" } { "_id":ObjectId("58e1d2f0bb1bbc3245fa754e"), "name":"user2", "age":20, "sex":"woman" } { "_id":ObjectId("58e1d2f0bb1bbc3245fa754f"), "name":"user3", "age":19, "sex":"woman" } >业精于勤,荒于嬉;行成于思,毁于随。
如果你觉得这篇文章不错或者对你有所帮助,可以通过右侧【打赏】功能,给予博主一点点鼓励和支持
本文内容总结:查询文档,1、find()和findOne(),2、条件操作符,3、$type操作符,
原文链接:https://www.cnblogs.com/liruihuan/p/6665222.html