Meteor Easy Search包自定义Mongo选择器查询

时间:2014-12-10 23:11:46

标签: meteor

我在我的项目中使用了以下软件包 - https://github.com/matteodem/meteor-easy-search

是否有人使用它并且能够为查询参数设置自定义mongo选择器?排行榜的例子对我来说并不是很清楚。我需要能够将meteor用户ID传递给:

EasySearch.createSearchIndex('producers', {
    'collection': Producers,
    'field': ['name', 'producerIdNumber', 'blocksCount', 'totalHectares', 'totalArea'],
    'limit': 8,
    'use' : 'mongo-db',
    'sort': function() {
        return { 'created': -1, 'name': -1 };
    },
    'query': function() {
        var selector =  {};
        return  selector
    }
});

如何传递或获取流星用户ID? EasySearch.createSearchIndex函数在服务器和客户端上运行。

2 个答案:

答案 0 :(得分:1)

我无法解决您的问题 - 但我可能会指出您正确的方向。如果您使用的是meteor-accounts软件包,并且需要从Meteor.users()集合中提取用户ID,则首先必须发布您的用户。

在服务器代码 - >

Meteor.publish(null, function() {
  return Meteor.users.find({}, {
    fields: {
      username: 1,
      profile: 1
    }
  });
});

在客户端上,您应该能够返回Meteor.users.find()或findOne()来获取userId。不是完整的答案,但可能有所帮助?

答案 1 :(得分:0)

我能够这样做

'query': function(searchString, opts) {
        // Default query that will be used for the mongo-db selector
        var query = EasySearch.getSearcher(this.use).defaultQuery(this, searchString);

        if (this.props.formName != '') {
            query.formName = this.props.formName;
        }

        if (this.props.producerId != '') {
            query.producerId = this.props.producerId;
        }

        if (this.props.blockUnitCodeSubCode != '') {
            query.blockUnitCodeSubCode = this.props.blockUnitCodeSubCode;
        }

        if (this.props.created.length != 0) {
            query.created = {$gte:new Date(this.props.created[0]), $lt:new Date(this.props.created[1])};
        }