mongodb相关的查询

  •         Criteria criteria = new Criteria();
            if (StringUtils.isNotBlank(keywords)) {
                criteria.orOperator(Criteria.where("name").regex(keywords, "i"),
                        Criteria.where("comment").regex(keywords, "i"),
                        Criteria.where("referName").regex(keywords, "i")
                );
            }
            Query query = new Query(criteria).with(new Sort(Sort.Direction.DESC, new String[]{ "orderNo","gmtCreated"})).skip(start).limit(limit);
    

     

  • mongoTemplate  模糊匹配查询

       

Criteria criteria = new Criteria();
if (StringUtils.isNotBlank(keywords)) {
    criteria.orOperator(Criteria.where("name").regex(keywords, "i"),
            Criteria.where("comment").regex(keywords, "i"),
            Criteria.where("referName").regex(keywords, "i")
    );
}
   根据字段排序
Query query = new Query(criteria).with(
    new Sort(Sort.Direction.DESC, new String[]{ "orderNo","gmtCreated"}))
.skip(start).limit(limit);

 

 

  • Robo 3T 查询   

          db.getCollection('xxxx').find({}).sort({gmtCreated:-1})  倒序查询

          db.getCollection('xxxx').find({comment:/曾经/})           模糊匹配查询

          

 

 

### MongoDB 反向查询的使用方法与示例 在 MongoDB 中,反向查询通常指的是按照特定顺序(如降序)对数据进行检索。这种需求可以通过 `sort()` 方法实现,并结合索引优化查询性能。以下是对反向查询的具体说明和示例。 #### 1. 使用 `sort()` 方法进行反向查询 MongoDB 提供了 `sort()` 方法用于对查询结果排序。通过指定字段为 `-1`,可以实现降序排序(即反向查询)。例如: ```javascript db.collection.find().sort({ field: -1 }); ``` 上述代码表示对集合中的 `field` 字段按降序排序[^1]。 #### 2. 结合 `hint()` 方法优化反向查询 如果需要进一步优化反向查询的性能,可以使用 `hint()` 方法强制指定索引。例如: ```javascript db.collection.find().sort({ field: -1 }).hint({ field: -1 }); ``` 此代码片段中,`hint({ field: -1 })` 强制使用针对 `field` 的降序索引,从而提高查询效率[^3]。 #### 3. 示例:查找最近更新的文档 假设有一个名为 `logs` 的集合,其中包含一个 `timestamp` 字段记录日志时间。为了查询最近更新的前 10 条日志,可以执行以下查询: ```javascript db.logs.find().sort({ timestamp: -1 }).limit(10); ``` 此查询将返回按 `timestamp` 字段降序排列的前 10 条记录[^4]。 #### 4. 聚合操作中的反向查询 在聚合管道中,也可以通过 `$sort` 阶段实现反向查询。例如,查找某集合中销售额最高的前 5 条记录: ```javascript db.sales.aggregate([ { $sort: { salesAmount: -1 } }, { $limit: 5 } ]); ``` 此聚合操作首先按 `salesAmount` 字段降序排序,然后限制输出结果为前 5 条记录。 #### 5. 注意事项 - 在执行反向查询时,确保相关字段已创建索引,否则可能导致性能问题。 - 如果查询条件复杂,建议使用 `explain("executionStats")` 分析查询计划,以评估性能并优化索引。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值