当前位置: 首页 > 知识库问答 >
问题:

如何在从集合中检索最后一个文档时提高性能

翟渝
2023-03-14

下面是一条语句,其中Limit()Sort()之前。。。

var result Candle
dao.c.Find(bson.M{"symbol": "USD"}).Limit(1).Sort("-time").One(&result);

... 下面是一条语句,Limit()Sort()之后:

var result Candle
dao.c.Find(bson.M{"symbol": "USD"}).Sort("-time").Limit(1).One(&result);

上述陈述之间是否存在性能差异?


共有1个答案

公西毅
2023-03-14

我们可能会回答有关mgo包和MongoDB本身的问题。

查询。Limit()查询。Sort()方法只在本地对Query对象进行操作,一旦设置了查询,就可以执行它,例如使用Query。一个()查询。All()。调用方法进行设置的顺序不存储,也无关紧要。

引用MongoDB文档:组合光标方法:

以下语句链接游标方法limit()sort()

db.bios.find().sort( { name: 1 } ).limit( 5 )
db.bios.find().limit( 5 ).sort( { name: 1 } )

这两个语句是等价的;也就是说,链接限制()排序()方法的顺序并不重要。这两个语句都返回前五个文档,由name上的升序排序顺序确定。

所以没有区别,它们是等价的,因此具有相同的性能。

 类似资料:
  • 在我的flutter项目中,我有2个两个消防库集合,一个是用户集合,我存储了所有用户详细信息,另一个集合是关注者,其中每个用户都有一个子集合,他/她的关注者用户ID作为文档。我的问题是,如何从用户收藏中检索这些关注者的详细信息? 这是我的用户收藏

  • 如何使用Java从MongoCollection检索最近添加的文档?大多数现有参考文献描述了如何在v2中实现这一点。在v3.3中如何做到这一点? 我想这与find(Bson filter)方法有关。如何指定Bson过滤器,如何将可查找表转换为文档?

  • 我有一个问题,但在我看来,我看到的所有解决方案都在解决一个比我更复杂的问题。 我对MongoDB比较陌生,但我一直在将它与Apache Neach一起使用来存储抓取的文档。由于我分阶段抓取,并以不同的方式评估每个抓取的结果,以获取统计数据,因此我一直将结果存储在不同的集合中。 我所要做的就是把这些收藏放在一起成为一个大的收藏,这样我就可以翻译和分类。所有字段都是相同的,因此我不需要添加任何新字段。

  • 我所处的情况是,当用户付款时,存储在Firestore集合(CartProducts)中的购物车产品应移动到名为SuccessFullOrders的新集合。 因此,我的基本问题是如何在Flutter中将所有文档从一个集合移动到Firestore的另一个集合 我不知道如何在flutter中编写代码。谢谢你的回答 这是我的代码

  • 我已经创建了一个azure函数,当一个新文档被添加到一个集合中时,它会被触发。 是否可以从该集合中选择特定文档,然后查询所选文档中的数据? 例如,在所谓的募集服装,我有一个文件,有一个ID: 12345Tops.我想查询ID为:12345Tops的文档中找到的数据。 或者检索集合中的第一个文档,然后查询第一个选定文档 我看过带有http触发器的azure函数:https://docs.micros

  • 问题内容: 我正在尝试使用websocket将数据从node.js / MongoDB实例“流式传输”到客户端。一切都很好。 但是,如何确定结果中的最后一个文档?我正在使用node-mongodb-native从node.js连接到MongoDB。 一个简化的例子: 问题答案: 由于mongodb objectId包含创建日期,因此您可以按ID,降序排序,然后使用limit(1): 注意:我一点都