使用find函数时Mongdb结合限制和排序

时间:2017-08-29 23:28:54

标签: mongodb mongodb-query mongoid

我有db mongdb示例,文档a和文档b

a_id type 
1     1
2     2
3     3 
4     4

现在。我想以与上例中相同的顺序提取表b中的最后N(1,2,3,4,5,....)值。但如果我使用跳过功能:

b.find().skip(M)

如果M> N然后结果为空=>错误。我想要动态M. 如果我使用排序和限制,那么它不会给出正确的顺序。

 b.find().sort({$natural:-1}).limit(M)

结果:

4 4
3 3

我想要一个解决方案!

1 个答案:

答案 0 :(得分:0)

您可以使用相同的skip()来访问集合中的最后N个文档。

N =要访问的前N个文档

所以查询是

b.find()。skip(b.count() - N).pretty()

或者您可以像使用

这样的javascript来玩mongo shell

var totalCount = b.count()

db.find()。skip(totalCount - N).pretty()