2017-03-09 34 views
0

我正在构建一个连接到MongoDB的C#ASP.net核心Web应用程序。 我的目标是以页面的形式从MongoDB获取数据,例如,如果我有100个特定集合的文档,我想在ID = X之后获得10个文档,在ID = X之前获得10个文档。如何从MongoDB中检索分页数据?

什么是正确的语法来获取这样的数据知道文档的ID(前10个文档以及下10个文档)?

+0

这太宽泛了。你有两个任务1)实现无限滚动和2)从你的数据库获取分页数据。这两者都不是针对SO的有效问题。看看如何去做。尝试实现自己的代码。如果你遇到特定的部分,这将是一个更合适的问题。确保你提供了[MCVE](http://stackoverflow.com/help/mcve)。 – mason

+0

我只是问关于语法来获取下10个文件和以前的10个文件,例如从mongodb C#驱动程序 –

+0

“只是”?再次阅读您的问题:“我的主要问题是我期待收集将保存数百条记录.....所以我希望从客户端滚动下来时获取数据。”您还将问题标记为[REST](http://stackoverflow.com/tags/rest/info)。 – mason

回答

1

,你必须执行2个查询:

1)未来10个对象

db.collection.find({_id:{$gt:object_id}}).limit(10) 

2)为前10个对象

db.collection.find({_id:{$lte:object_id}}).sort({_id:-1}).limit(10) 

当您排序与_id,你将通过其创建时间戳来排序(降序或升序)文档。