在mongodb中,如何获得10个id小于100但不是从1到10的文档,而是从90到99的文档

在mongodb中,如何获得10个id小于100但不是从1到10的文档,而是从90到99的文档,mongodb,Mongodb,我有一个mongodb集合,id字段上的索引按升序排列 如何从id小于100的集合中获取10个文档,但不是前10个文档,而是100以下的最后10个文档 下面的查询提供了从1到10的数据 db.products.find({id:{$lt:100}}).limit(10) db.products.find({id:{$lt:100}}).skip(90)您也可以尝试 db.products.find({$and:[{id:{$lt:100}},{id:{$gte:90}}]}).limit(10

我有一个mongodb集合,id字段上的索引按升序排列

如何从id小于100的集合中获取10个文档,但不是前10个文档,而是100以下的最后10个文档

下面的查询提供了从1到10的数据

db.products.find({id:{$lt:100}}).limit(10)
db.products.find({id:{$lt:100}}).skip(90)
您也可以尝试

db.products.find({$and:[{id:{$lt:100}},{id:{$gte:90}}]}).limit(10);

它将从90-99的“id”范围中最多返回10个文档。

如果id元素没有连续的序列该怎么办。在这种情况下,跳过数据就不起作用了@未定义的_变量的答案更好。即使它们是连续的,您也需要添加一个
排序
,这才有用。因为我已经在id字段上有了一个按升序排列的索引,我能否避免在查询中进行排序操作以获得所需的结果。您必须使用排序,因为您的数据是按升序排列的,正如我在前面的一条注释中指出的,id不必总是连续的我指的是你问题的标题-你想要10个90到99的文档,这就是查询返回的结果…我理解。鉴于此,我们的答案是100%正确和恰当的。
db.products.find({$and:[{id:{$lt:100}},{id:{$gte:90}}]}).limit(10);