美文网首页mongoDB
mongo聚合查询最近的一条数据

mongo聚合查询最近的一条数据

作者: KillerManA | 来源:发表于2016-09-12 22:49 被阅读342次

刚开始使用mongo,一些常用技巧没有掌握,导致一些查询特别耗费时间,这里总结一下近几天使用的一些小技巧,有使用的童鞋可以看一看。
常用的是aggregate,这里面的技巧如下:
1.使用$match首先进行数据筛选,这里要注意了,有个隐藏的点,就是当mongo建立索引,并且用索引去搜索时,会按照默认的排序规则进行排序。当我们建立一个复合索引时,首先会按照我们查找的第一个字段排序,然后在按照复合索引里面的下一个排序

query = [
        {"$match": {"customer.address_id": {"$in": sids}}},
        {"$project": {"_id": 1, "date_time": 1, "customer.address_id": 1, "total_pay": 1}},
        # {"$sort": {"date_time": -1}},
        {"$group":
            {
                "_id": "$customer.address_id",
                "last_order_time": {"$first": "$date_time"},
                "last_order_money": {"$first": "$total_pay"},
            }
        }
    ]

sids为要查询的列表:如用户id之类的。

比如这个查询语句,我们的表中对date_time和customer.address_id进行了索引的建立,我们使用address id进行查询时会先按照这个来排序,然后在按照datetime来排序,所以当我们按照address id来进行group时,所查询到的数据其实是按照datetime默认排好序的,倒序排,我们就可以拿着拍好序的数据去进行其它操作,比如这里我去获取每个分组里面的第一条订单记录里面的字段。

这里要注意一点:代码里面注释了一行sort排序,是按照datetime进行的,这样会对mongo默认按照索引排序造成破坏(已经按照address id排好了),会使查询速度下降的特别多。

使用场景:代码里面的逻辑的使用场景是用来查询一个用户最近的一笔订单信息,这样的查询会比较快速,稳定一些。

2.使用$project在聚合条件下制定查询字段
用什么查什么,不要全部返回数据,这样子还是很耗时的。使用这个功能对我们要查询的字段进行筛选,速度提升较高。

相关文章

  • mongo聚合查询最近的一条数据

    刚开始使用mongo,一些常用技巧没有掌握,导致一些查询特别耗费时间,这里总结一下近几天使用的一些小技巧,有使用的...

  • mongo $match查询日期结果错误

    今天使用mongo聚合查询某个时间段的数据 发现返回结果错误 经过排查问题 在聚合中$match查询和平常使用fi...

  • mongo聚合查询

    1.概述 MongoDB 聚合框架(Aggregation Framework)是一个计算框架,它可以:• 作用在...

  • Mongodb 的高级查询

    关键词:mongodb, mongo, project, group, aggregate, 聚合管道, 高级查询...

  • 整理最近用的Mongo查询语句

    背景 最近做了几个规则逻辑。用到mongo查询比较多,就是查询交易信息跑既定规则筛选出交易商户,使用聚合管道进行统...

  • [日记]Mongo聚合查询

    collection 1 使用mongo查询一个对象数组中元素属性为特定值的数据,期望查询结果为: 语句: 2 若...

  • mongo回顾(八:聚合查询二)

    上一篇简单的介绍了mongo的聚合查询,并举例了match与lookup的使用,今天的话继续介绍聚合查询与Mong...

  • pymongo使用

    Tutorial 开始之前,安装PyMongo和Mongo。 插入操作 查询一条数据: 批量插入 查找多条数据: ...

  • mongo回顾(七:聚合查询)

    上一篇简单介绍了mongo的增删改查,今天来聊聊mongo的聚合操作 什么是 MongoDB 聚合框架 Mongo...

  • python MongoDB基础操作

    连接mongo 插入数据 查询数据 in limit,skip or 删除 更新 排序

网友评论

    本文标题:mongo聚合查询最近的一条数据

    本文链接:https://www.haomeiwen.com/subject/xfxmettx.html