流星如何在find集合中添加findParams?

时间:2019-05-10 06:15:39

标签: meteor

我正在努力在主页上显示所有用户的帖子,并且一切正常。我在帖子中添加了小按钮   以便该用户可以根据需要阻止该帖子,并阻止添加该帖子并将该值保存在用户集合中的用户。所有帖子都显示在主页上,但是在阻止参数或用户之后,我不想显示该特定帖子或用户帖子。这是我的代码,用于显示所有帖子,并且我试图在所有帖子代码中添加一个条件,以不显示屏蔽帖子和屏蔽用户帖子。 这是我的帮手

'posts'() {
      const findParams = {};
    findParams.$or = [{ 'block': { $exists: false } }, { 'block': false }];
    if(Meteor.user()){
      let blockPost = Meteor.user().blockPostList;
      let blockUser = Meteor.user().blockOwneUserList;
      if(blockPost && blockPost.length > 0){
        findParams._id = { $nin: blockPost };
      }
      if(blockUser && blockUser.length > 0){
        findParams.$and = [{'plaintiff._id': {$nin: blockUser}},{'defendant._id': {$nin: blockUser}}];
      }
    }

    return Posts.find({}); 

},

1 个答案:

答案 0 :(得分:0)

反正您总是返回所有文档,因为

return Posts.find({});

返回当前集合中的所有内容。应该是

return Posts.find(findParams);

否则,构建findParams的整个代码毫无意义。请注意,并不是所有的mongo操作都可以在Minimongo(流星客户端Mongo)上运行,但是您应该对代码中的操作感到满意。