meteor easy-search服务器端过滤

时间:2015-11-03 22:47:34

标签: mongodb search meteor elasticsearch

我有一个名为" Contacts"的集合,其中每个文档都有authorId。我希望用户在服务器端搜索集合(出于性能目的,因此我使用MongoDB引擎),但只返回与用户具有相同authorId的联系人。似乎权限允许或拒绝访问整个集合。有没有办法实现服务器端过滤?

由于

2 个答案:

答案 0 :(得分:0)

将Mongo选择器添加到查询选项。

例如:

EasySearch.createSearchIndex('contactsIndex', {
  'collection': Contacts,
  },
  'query': function(searchString) {
     var query = EasySearch.getSearcher(this.use).defaultQuery(this, searchString);
     query.authorId = {$in: Meteor.userId}
     return query;
   }
});

答案 1 :(得分:0)

我认为我找到了使用权限选项执行此操作的正确方法。

http://matteodem.github.io/meteor-easy-search/docs/core/

基本上,我会将选择器中的authorId作为过滤器传递,并在权限中验证authorId与当前userId相同。

我还没有验证是否实际在服务器中执行了该权限。但是在客户端进行权限检查是非常错误的。