过滤数据的最佳实践 mongodb

Best practice for filtering data mongodb

我正在研究返回搜索结果的最佳做法。我有一个订阅出版物的搜索页面,该出版物 returns 基于多个字段中搜索的正则表达式查询进行查找。这被放入客户端的 minimongo collection。

此时,它的处理方式是从订阅中设置构面。我的问题是来自后端的 pre-loaded 结果的过滤是否应该在客户端完成,或者查询是否应该发回。

示例:

给定 collection 个水果,我想找到所有红色的。服务器returns这个,但是我有基于水果的切面。所以,我有一个草莓、苹果、樱桃等的复选框。如果我点击樱桃的复选框,我应该只过滤当前的 minimongo collection,还是应该 re-query?

从逻辑上讲,我的 collection 中已经有了我可以过滤的所有需要​​的项目,所以我不确定为什么我需要点击 back-end。我唯一应该打到后端的时候是在搜索中,我输入一个新的查询(比如蓝色),并且这些方面得到适当的 re-done

如果您的原始搜索返回 所有 匹配文档,则可以在您的 minimongo 查询中在客户端添加条件 if原始搜索返回附加条件的字段。

OTOH 如果原始搜索返回的是分页列表或仅返回前 N 个结果,或者如果未包含所需的键,那么您想在服务器上继续搜索。

在传统的请求-响应系统中,如果基础数据快速变化(例如:预订系统),您可能还希望每次都查询服务器。对于 Meteor,pub-sub 的 反应性 性质意味着客户端上的数据通过 WebSocket 上的 DDP adds/changes/deletions 不断刷新。