【问题标题】:Customized reactive search with Meteor使用 Meteor 进行自定义响应式搜索
【发布时间】:2015-09-15 19:14:34
【问题描述】:

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

应用程序应该使用 4/5 集合,然后基于 3 个文本过滤器(DB 字段)和集合选择(来自下拉菜单),返回响应式结果。所以,假设从下拉菜单中,他们选择集合 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 或模板。或者,考虑到查询的复杂性,如果我需要集成其他东西,比如简单搜索。

请让我知道您需要哪些代码部分,我会在编辑中添加它。 (添加所有内容会使它太长)。

【问题讨论】:

    标签: meteor


    【解决方案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
      }
    });
    

    【讨论】:

    • 不错的答案。所以它可能在客户端上有多个输入字段并使用该方法正确显示每个条目的结果(如果我修改,显然)? IE:如果我有一个包含标签、类别、作者的帖子集合,并且如果我为每个集合字段填写 3 个输入字段,它会搜索包含这些文件的帖子,对吗?谢谢(:
    • 或者使用自定义输入字段编写我自己的搜索是否会更好,这将从输入字段中获取值并使用 Posts.find 返回?
    猜你喜欢
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 2013-04-18
    • 2015-12-01
    • 2022-07-02
    相关资源
    最近更新 更多