我有一个名为" Contacts"的集合,其中每个文档都有authorId。我希望用户在服务器端搜索集合(出于性能目的,因此我使用MongoDB引擎),但只返回与用户具有相同authorId的联系人。似乎权限允许或拒绝访问整个集合。有没有办法实现服务器端过滤?
由于
答案 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相同。
我还没有验证是否实际在服务器中执行了该权限。但是在客户端进行权限检查是非常错误的。