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

本文详细介绍了在 Node.js 中使用 MongoDB 进行文档查询的各种操作,包括基本查询、查询条件、指定返回键、限制查询数量及排序方法。内容涵盖了正则匹配、$in 操作符、AND 和 OR 条件的组合使用,以及 limit 和 sort 方法的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

11.文档查询

1.查询

  (1)方法

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

 (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模式,指定不返回的键,返回其他键

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]}

 

正则匹配查询:

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

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

 

$in:

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

 (2)AND条件

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

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

(3)OR条件

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

(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})

//按照年龄排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值