mongodb如何获得集合中所有最后更新的一批数据?

来源:互联网  时间:2018/1/27 1:40:04

关于网友提出的“ mongodb如何获得集合中所有最后更新的一批数据?”问题疑问,本网通过在网上对“ mongodb如何获得集合中所有最后更新的一批数据?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: mongodb如何获得集合中所有最后更新的一批数据?
描述:

标题的表述应该有问题。不过不知道怎么简单描述。

情况是这样的,一个集合,每隔几天会更新一批数据,他们都有当天统一的一个时间戳。
有没有一种更有效率的写法能够直接获得所有时间戳为最近的记录的方法?

目前的处理手法是
collection.find().sort('timestamp', pymongo.DESCENDING).limit(1)
得到一个最近的一个时间戳

然后在
collection.find({‘timestamp’:最近时间戳})

总觉得在哪看到过更简洁的写法,
求助。


解决方案1:

综合考虑效率和难易程度,我觉得你这样写法没有问题,除此之外我也没有想出来特别好的替代方案。不知道你说的『更简洁』的写法是不是aggregation中group+$push的写法。如果是的话那样的写法不如现在的效率好,并且有返回结果过大时异常的可能性。
不过有些额外的问题我想说明一下。即使是一批更新的数据,timestamp不见得一样吧;或者说不是一批更新的文档timestamp不见得不一样。要区分『一批更新』这个概念,同一批更新的文档必须要有一个唯一的『批次号』,可以是ObjectId或是GUID。建议ObjectId,它比较短所以性能略好。

上一篇sql语句查询本周每天的数据量,如果没有该天,数据量默认为0;
下一篇nestjs 使用mongoose操作mongodb ,官方例子看不懂,求解释,运行起来了,不会操作
明星图片
相关文章
《 mongodb如何获得集合中所有最后更新的一批数据?》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)