筛选mongodb数据的最佳实践



我正在研究返回搜索结果的最佳实践。我有一个搜索页面,订阅了一个发布,该发布在多个字段中基于搜索到的正则表达式查询返回查找结果。这会被放入客户端的minimongo集合中。

此时,处理它的方式是从订阅中设置facet。我的问题是,是否应该在客户端对来自后端的预加载结果进行筛选,或者是否应该将查询发回。

示例:

给定一组水果,我想找到所有颜色为红色的。服务器返回这个,但我有基于水果的facet。所以,我有一个草莓、苹果、樱桃等的复选框。如果我点击樱桃的复选框,我应该只过滤当前的minimongo集合,还是应该重新查询?

从逻辑上讲,我的集合中已经有了所有需要筛选的项目,所以我不确定为什么需要访问后端。我唯一应该到达后端的时间是,如果在搜索中,我键入一个新的查询(如蓝色),并且适当地重新完成面

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

OTOH如果原始搜索返回一个分页列表或仅返回前N个结果,或者如果没有包括所需的关键字,则您希望在服务器上继续搜索。

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

最新更新