2014-09-13 3 views
0

로그인 한 사용자가 블로그 게시물을 스크롤 할 때 즉시 결과에서 게시물을 제거하는 'x'버튼을 클릭 할 수 있으므로이 기능을 만들고 싶습니다. 그 게시물은 해당 사용자에 대한 향후 검색 결과에서 양보되지 않습니다.유성 : 로그인 한 사용자가 검색 결과에서 문서를 삭제할 수 있습니다.

이것은 내가 지금까지 가지고 있으며 게시물의 문서 ID를 검색하는 'x'버튼의 관점에서 작동합니다. 그런 다음이 ID를 배열 필드에 삽입했습니다 ...

not_intereted[], 

이 필드는 사용자 프로필에 있습니다.

Accounts.createUser({ 
    email: template.find("#signup-email").value, 
    password: template.find("#signup-password").value, 
    profile: { 
     not_interested: []} }); 

각 사용자는 전체 게시물 모음집에 가입되어 있습니다.

AllPosts = new Meteor.Collection('allposts') 

렌더링 된 각 게시물에 대해 클릭하면 다음 이벤트가 발생합니다. 이 이벤트는 선택한 문서 _id를 변수 'a'로 성공적으로 가져옵니다. 이 변수는 메소드에 성공적으로 전달됩니다. 서버에서

Template.postBoard.events({ 
'click a.close': function(e){ 
    e.preventDefault(); 
    Session.set("selectedPostId", this._id); 
    var a = Session.get('selectedPostId'); 
    Meteor.call('addToremoveList', a); 
} 
}); 

: 지금까지의 작품이 무엇

Meteor.methods({ 
'addToremoveList': function(a){ 
    Meteor.users.update({ _id: Meteor.userId() }, { $addToSet: { 'profile.not_interested': a }}); 
} 
}); 

. 사용자가 삭제하고자하는 문서 ID를 저장할 수 있습니다. ID는 not_interested이라는 사용자 프로필 필드에있는 배열에 저장됩니다.

질문 :`AllPosts.find();를 호출 할 때 어떻게 이러한 not_interested 문서를 제거 할 수 있습니까?

Im 몽구스를 구현하는 방법이 확실하지 않습니다. $ne.

감사합니다. 전체 게시물 컬렉션에 가입 한 모든 사용자를 유지 http://docs.mongodb.org/manual/reference/operator/query/nin/#op._S_nin

:

답변

0

당신은 몽고 닌 연산자를 사용합니다. 그런 다음 클라이언트에, 당신이 수행하여 (아마도 철 라우터의 데이터 기능을 사용)을 표시 할 게시물 선택

selectedPosts: AllPosts.find({_id: {$nin: Meteor.user().profile.not_interested} }) 

(나는 이것을 테스트하지 않았다, 그러나 그것은 작동이 경우 코멘트를 남겨주세요해야한다. 그렇지 않습니다.)

+0

테스트 목적으로 코드를 도우미 안에 넣었습니다. Brilliant,하지만 철제 라우터에 이것을 쓰는 방법을 안내해 줄 수 있습니까? 'allPostsTemplate'을 템플릿 이름으로 가정합니다. – meteorBuzz

+0

문서를보십시오 : https://github.com/EventedMind/iron-router/blob/devel/DOCS.md#data . 기본적으로 당신이하는 일은 당신의 경로 안에서 데이터를 사용하는 것입니다 : {selectedPosts : AllPosts.find ({_ id : {$ nin : Meteor.user(). profile.not_interested}}}}}} 도우미 기능. – tomet

+0

코드가 라우터 내에서 다음과 같이 작동했습니다 ... data : function() {return {selectedPosts : AllPosts.find ({_ id : {$ nin : Meteor.user(). profile.not_interested}}}}} 프리츠 2000 – meteorBuzz

관련 문제