三、mongdb 查询

本文详细介绍了MongoDB的查询和聚合框架,包括查询过滤器、范围查询、正则表达式、投影、排序、限制、跳过、索引、文本索引、地理空间索引的使用。同时,讲解了聚合框架中的$group、$match、$sort、$limit、$skip、$unwind、$project、$addFields等操作符,提供实例展示如何执行这些查询和聚合操作。
摘要由CSDN通过智能技术生成

一、 MongoDB文档检索

MongoDB中有多种方式可以检索文档:

1.1 查询过滤器

使用查询过滤器从集合中检索文档。查询过滤器是一组键值对,可按字段值查询文档。
例如:

db.col.find({
   "status":"A"})

这个示例查询status等于“A”的文档。

1.2 范围查询操作符

范围查询操作符可用于构建基于值范围的查询过滤器。例如:

  • l t 、 lt、 ltlte、 g t 、 gt、 gtgte:分别表示less than、less than or equal、greater than、greater than or equal。
  • $in:匹配数组中任一值
  • $nin:匹配不在数组中的任何值

例如:

db.col.find({
   "age":{
   "$gt":20,"$lt":30}})

这个示例查询age在20到30之间的文档。

1.3 正则表达式

可以使用正则表达式查询字符串字段的值。使用$regex操作符指定正则表达式。
例如:

db.col.find({
   "name": {
   "$regex" : /^A/}})

这个示例查询以A开头的name字段的文档。

1.4 投影操作

可以使用投影操作从文档中选择需要的字段。使用$project操作指定要包含/排除的字段。
例如:

db.col.find({
   },{
   "name":1,"address":1})

这个示例查询所有文档,但只返回name和address字段。_id字段默认返回,需要显式排除。

1.5 排序

可以使用$sort操作对结果进行排序。
例如:

db.col.find().sort({
   "age":1})

这个示例查询所有文档,并按age字段升序排列结果。

1.6 限制结果数量

可以使用$limit操作限制结果数量。例如:

db.col.find().limit(5)

这个示例查询最多5个文档。

1.7 跳过结果数量

可以使用$skip操作跳过结果数量。例如:

db.col.find().skip(10).limit(5)

这个示例跳过前10个结果,然后返回接下来的5个结果。

1.8 索引

可以在字段上创建索引以加快查询速度。确保索引字段是你查询过滤器和排序操作中使用的字段。
例如,如果经常按age字段查询文档,那么在age字段上创建索引将大大提高查询性能。
索引可在创建集合时指定,也可随时添加/删除。
例如,创建age索引:

db.col.createIndex({
   "age":1})

1.9 文本索引

可以在字符串字段上创建文本索引,以便执行文本搜索查询。
例如,如果有一个内容字段包含文章文本,则可以在该字段上创建文本索引,然后执行基于关键字的搜索查询。
例如,创建内容文本索引:


                
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值