2016-07-31 34 views
0

我在写数据库服务(mongodb,django)的REST API。我的问题是如何通过API处理读取操作?一个简单的sol'n是使用skip查询数据库并在每个api调用上限制参数,所以我可以查询数据库并返回结果。但是,在每个API调用(分页)上进行查询不会很低效吗?或者我应该查询一次,并将cursor_id存储在后端的第一次调用中,并且用于为随后的api调用获取数据?将数据库读取操作公开为webservice

谢谢。

回答

1

请使用您的简单解决方案:只需向db查询相应的页码。使用提供skip()limit()方法,或者如果你很在意效率,this thread there is a work around avoiding skip() function

总体而言,我不建议在内存中加载整个数据库收集/表(也蒙戈但是任何分贝)。
这可以与一个小数据集一起工作,但是,如果您的集合包含大约200k个文档,该怎么办?你打算让他们在一个变量?你会浪费CPU内存重复你的分贝。
除此之外,你会发现不一致数据之间的数据库加载和你有什么内存。
最后,您的API会搜索页码2000多少次?通常你会寻找第一个结果页面。