我正在为数据库服务(mongodb,django)编写REST API。我的问题是如何通过API处理读取操作?一个简单的sol'n是在每次api调用时使用skip和limit params查询数据库,所以我可以查询数据库并返回结果。但是,对每个api调用(分页)进行查询是不是效率低下?或者我应该查询一次并将cursor_id存储在后端的第一次调用中并使用is来获取后续api调用的数据?
感谢。
答案 0 :(得分:1)
使用简单的解决方案:只需向db查询相应的页码。在[{3}}
中使用提供的skip()
和limit()
方法,或者如果您非常关注效率
一般来说,我不建议在内存中加载整个db集合/表(也不是mongo而是任何db)。
这可能适用于一个很小的数据集,但是,如果你的收藏包含大约200,000个文件怎么办?你打算把它们变成变量吗?你将浪费CPU内存复制你的数据库。
另外,您会在数据库中加载的内容与内存中的数据之间找到不一致数据。
最后,您的API会搜索页码2000多少次?通常,您会查找第一个结果页面。