Node.js- MongoDB操作-文档查询

11.文档查询

1.查询

  (1)方法

  • Db.collName.find()  --查询所有文档(数据)
  • Db.collName.findOne()  --查询满足条件的第一个文档(数据)
  • Db.collName.find().pretty()  --返回易读的格式
  • Db.collName.find().count()  --集合中文档(数据)的数量
  • Db.collName.count()  --集合中文档(数据)的数量
  • Db.collName.distinct()  -查询去掉后的当前集合中的某列的重复 数据

Node.js- MongoDB操作-文档查询

 (2)语法

       Db.collection.find(query,projection)

       Query:可选,使用查询操作符指定查询条件

       Projection:可选,使用投影操作符指定返回的键。查询时返回文档中所有键值,只需省略该参数即可(默认省略)

        Db.collName.find(query,{ title:1 , by :1})//inclusion模式,指定返回的键,不返回其他键

         Db.collName.find(query , { title:0 , by: 0 });//exclusion模式,指定不返回的键,返回其他键

Node.js- MongoDB操作-文档查询

2. 查询条件

(1)常规条件

操作

格式

范例

等于

{<key>:<value>} value可以是正则

db.collName.find({"by":"钢铁侠"});

小于

{<key>:{$lt:<value>}}

db.collName.find({"likes":{$lt:50}});

小于或等于

{<key>:{$lte:<value>}}

db.collName.find({"likes":{$lte:50}}

大于

{<key>:{$gt:<value>

db.collName.find({"likes":{$gt:50}});

大于或等于

{<key>:{$gte:<value>

db.collName.find({"likes":{$gte:50}}

不等于

{<key>:{$ne:<value>

db.collName.find({"likes":{$ne:50}}

存在于

{key:{$in:[1,2,3,5]}}

db.collName.find({'likes':{$in:[10,23]}

 Node.js- MongoDB操作-文档查询

正则匹配查询:

      Db.collName.find({name:/A/})// 查询name中带A的数据

       Db.collName.find({name:/^A/}) //查询name中以开头的数据

 Node.js- MongoDB操作-文档查询

$in:

        Db.collName.find( { class : {$in : [ ‘ PHP ’ , ’ NET ’ ] } } );

Node.js- MongoDB操作-文档查询

 (2)AND条件

       传入多个键(key),每个键(key)以逗号隔开

       Db.collName.find({key1:value1,key2:value2});

(3)OR条件

Db.collName.find({
    $or:[
       {$key1:value1},{$key2:value2}
   ] 
})

Node.js- MongoDB操作-文档查询

(4)AND和OR联合使用

         //查询likes值大于50并且(name值是‘史塔克’或title值是‘钢铁侠’)

         Db.collName.find( {“likes”:{$gt:50} , $or: [{“name”:”史塔克”} , {“title”:”钢铁侠”}]} )

        //team为复仇者并且 年龄在小于50或大于100

        Db.users.find({team:’’复仇者},$or:[{age:{$lt:50},{age:{$gt:100}}}]);

        //年龄在50-100之间(大于50并且小于100)

        Db.users.find({age:{$gte:50,$lte:100}});

        //年龄在50-100之间(小于100 大于50)

       Db.users.find({age:{$gte:50,$lte:100}});

3. 读取指定数量limit

(1)方法

       Db.collName.find().limit()

       Db.collName.find.skip()

       Db.collName.find.skit.limit()

(2)示例

        //前两条数据

        Db.collName.find({}).limit(2)

        //跳过前两条,剩下的数据

        Db.collName.find().skip(0)

        //从第三条数据开始,取5条

         Db.collName.find().skip(2).limit(5)

4. 排序

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

     Db.collName.find().sort({key:1})

//按照年龄排序

Node.js- MongoDB操作-文档查询