使用find函数时Mongodb组合限制和排序

问题描述 投票:1回答:1

我有文件a和文件b的db mongodb示例

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

我想要一个解决方案!

mongodb mongodb-query mongoid
1个回答
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()

© www.soinside.com 2019 - 2024. All rights reserved.