2016-02-29 2 views
0

У меня есть страница, которая отображает всех зарегистрированных пользователей, но хочет опустить текущего пользователя. Есть ли способ вернуть всех пользователей Meteor , кроме текущего пользователя.Возвратите всех пользователей метеора за исключением текущего пользователя?

Вот мой HTML:

<template name="users"> 
    <div class="contentDiv"> 
     <div class="blueTop pageContent" id="profileName">Users</div> 
      {{#each users}} 
       <div class="pageContent text"> 
        <a class="user link" id="{{_id}}">{{profile.firstName}} {{profile.lastName}}</a> 
        <button class="addFriend">Add Friend</button> 
       </div> 
      {{/each}} 
     </div> 
    </div>  
</template> 

И мой JavaScript:

if (Meteor.isClient) { 
    Meteor.subscribe("users"); 

    Template.users.helpers({ 
     users:function(){ 
      return Meteor.users.find({}, {sort: {firstName: -1}}).fetch();  
     } 
    }); 
} 


if (Meteor.isServer) { 
    Meteor.publish("users",function(){ 
     return Meteor.users.find(); 
    }); 
} 

ответ

1

Вы можете использовать оператор сравнения запроса $ne отфильтровать документы, которые не равны заданному значению, в вашем случае Meteor.userId().

Например:

Meteor.users.find({_id: {$ne: Meteor.userId()}}); 
+1

Спасибо! @Matthias Eckhart –

+0

@LeonardParisi Добро пожаловать! Хорошего дня. –

+0

Я пробовал делать именно это, но текущий пользователь сохраняется и возвращается. – webkit

0

Если вы используете публикации, вы можете просто использовать оператор $ne. this.userId установлен для всех функций публикации в качестве текущего пользователя.

Meteor.publish('all_users', function() { 
    return Meteor.users.find({ 
    _id: { $ne: this.userId } 
    }); 
}); 
Смежные вопросы