mongodb多次查询,不断添加条件,如何处理更好

查询列表(20万数据),先通过条件一查询,如果查询出来的数据大于一,则添加条件二(查询条件为条件一加上条件二),如果结果大于一则继续添加条件,如果等于一则终止,如果结果为0则获取上一次查询的结果;以此类推,添加多个条件。这样的情况如何处理更好呢?
现在想到的思路就是保存每次查询到的结果,在结果上查询,但是如果结果很大的话,就无法实现。另外也想过使用聚合但是因为条件判断感觉无法处理。各位有什么好的方法吗?

阅读 3.7k
1 个回答

主要问题是,这个过程是怎么进行的?

场景一

如果条件一多于1条数据,是由用户选出第二个条件再查第二次,然后再查,如果再多于1,用户再选出第三个条件再查
如果是这种场景,我觉得这不是一个数据库需要解决的问题,而更应该是你如何引导用户操作的问题。简单的实现可以做到:

  • 由AJAX加载查询结果,如果后一次查询结果是0,则不要更新当前页面;反之更新页面中的结果。

不用考虑保留上一次的结果的问题,要保留的只是上一次的条件,保留结果无论对数据库效率还是对开发复杂度都没有好处。

场景二

如果是用户一次性给定了有顺序的n个条件,你需要查到多少个条件时记录只剩一条。
如果是这种场景,同样不用考虑保留中间结果的问题。可以考虑倒过来查,先使用最多条件,没有结果则减一个条件,一直查到有结果为止,那就是你要的结果。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进