MongoDB - 根据多个字段获取最新文档

时间:2016-08-08 09:46:39

标签: mongodb

我有一个特殊的查询案例需要尽可能优化,

问题:

我有一组邮件,每条邮件都有一个groupID字段,我需要获取每个groupID的最后一条消息,但我不想为每个组执行一次查询,而是我想要&# 39; t给出一组groupID并得到一个消息数组

到目前为止的解决方案:

我设法提出了两个解决方案 1.对每个groupID执行查询,工作正常需要大约200毫秒来完成,但在MongoDB上执行很多请求 2.使用Aggregate根据GroupID对消息进行分组,然后选择每个组中的第一个,这个组真的很慢,大约需要4000毫秒

代码

var filter = Builders<Message>.Filter.Eq("GroupID", groupID);
var sort = Builders<Message>.Sort.Descending("Date");
return await MessagesCollection.Find(filter).Sort(sort).Limit(1).FirstAsync();

我正在寻找的是一种批量查询的方法,或者做一个可以返回给定groupID的第一个消息的查询,任何想法? 任何帮助将不胜感激 提前谢谢

0 个答案:

没有答案