我目前在用java的驱动,发现在 DBCursor _BCursor = _BCollection.query(_DBQuery),游标中没有count方法;
顺便说一下mongodb是有的,但效率真心不敢恭维;
后来在 _BCollection.getCount(_DBQuery.getMatcher());发现了count方法;
作为使用者我发现这个count其实可以优化到游标中的,一旦我根据DBQuery查询了任何数据其实这个总数应该是能得到的;
不需要使用者再次去查一次,主要是浪费数据库的资源,如果查询条件稍微复杂一点,好不容易把结果给等来了,如果要知道总数还得去查一次,这样无形中就觉得响应好慢(mongodb也存在这个问题,count是跟查询分开的,即运行查询后要得到总数还得去查一次)
我没做过第三方的API,也不知道API跟数据库对接到底是一次完成还是需要透过API再做一些事情;
无非两种情况:
1.如果API不做任何事情,都是发送命令给数据库,那么可否设置数据库的返回格式为:{total:1000,datas:[{},{}]} 这样API就一次性取到数据和总数
2.如果API需要分析返回的数据,则更好办了,直接可以记录总数给调用方;
这个问题确实影响企业级用户的分页查询,请考虑加入这个方法;