使用Meteor进行自定义反应搜索

时间:2015-09-15 19:14:35

标签: meteor

我是Meteor的新手,遇到以下问题。我需要使用多个集合和多个字段/ $和selector来实现反应式搜索。任何形式的指导都将不胜感激。

应用应该使用4/5集合,然后基于3个文本过滤器(数据库字段)和集合选择(从下拉菜单中),返回被动结果。所以,比方说,从下拉列表,他们选择集合c1然后输入以下内容 - 对于字段f1,11,对于字段f2,22,f3,33。

现在应用程序应返回c1中具有3个字段的相应值{f1:11,f2:22 ...}的文档。 查询将类似于: collection.find({$and: [{f1:11, f2:22, f3:33...}]})

到目前为止我一直在努力。

路线1

aldeed/meteor-autoform

使用autoform,我开发了一个包含下拉菜单和文本框的表单。我不知道如何从这里开始 - 如何整合,轻松搜索与autoform。

路线2

matteodem/easy-search

只需轻松搜索。我仍在使用这个软件包开发反应式搜索。我正在关注那里的排行榜示例。处于开发阶段,我不知道还需要知道什么。

路线3

aslagle/reactive-table

使用反应表。我使用默认过滤器。反应结果很好。现在我正在尝试自定义过滤器,但它无法正常工作。不确定我做错了什么 - helpers.js或模板。或者,如果我需要集成其他类似的东西,易于搜索,考虑到查询的复杂性。

请告诉我您需要的代码部分,我会在编辑中添加它。 (添加一切会使它太长)。

1 个答案:

答案 0 :(得分:1)

使用EasySearch,您可以定义自己的特殊查询。

EasySearch.createSearchIndex('cars', {
  'field' : ['name', 'price'],
  'collection' : Cars,
  'limit' : 20,
  'query' : function (searchString, opts) {
    var query = EasySearch.getSearcher(this.use).defaultQuery(this, searchString);
    query.$and = query.$and || {};
    // do whatever you need with `$and` here
  }
});