2016-12-02 7 views
0

추가 또는 새 필드를 컬렉션에 추가하거나 삽입 한 다음 새로 삽입 한 필드를 컬렉션에 액세스 할 수 있습니까? 클라이언트 쪽과 그것을 템플릿에 표시하거나 서버 측에 영향을 미치지 않고 액세스 할 수 있습니까? 고객이 총 8 건의 배송을 처리하는 경우처럼 API 또는 데이터베이스와 타협하고 싶지 않습니다.클라이언트 측에서만 컬렉션에 추가 필드 추가 및 서버 측에 영향을 미치지 않음

내가 컬렉션에 가입 한 후 클라이언트 측에서 컬렉션을 업데이트하려고하지만 분명히 내가 업데이트에 대한 어떠한 권리도 있어야하지 않는다있어이 코드를하고 있었다 :

Meteor.subscribe("all_customers", function() { 
    Customer.find({}).forEach(function(data) { 
     var delivery_count = Delivery.find({ customerID: data._id }).count(); 
     Customer.update({ _id: data._id } , { $push: { deliveries: delivery_count } }); 
    }); 
}), 

를 그리고이 일을 하나 나는 새 키 - 값 쌍을 삽입하여 컬렉션을 조작하려고 거라고하지만 표시하거나하지 않습니다 아무것도 전혀 전송 때 :

Meteor.subscribe("all_customers", function() { 
    Customer.find({}).forEach(function(data) { 
     var delivery_count = Delivery.find({ customerID: data._id }).count(); 
     data.deliveries = delivery_count; 
    }); 
}), 

내 주요 목적은 기본적으로 카운트를 분류 할 수있다 EasySearch 패키지에서 배달하지 않고 API 또는 데이터베이스와 함께 사용하지만 패키지는 기존 필드 만 정렬합니다. 아니면 패키지만으로이 작업을 수행 할 수있는 방법이 있습니까?

이 질문이 벙어리로 들릴지 모르겠지만 용서해주세요.하지만 누군가가 도울 수 있기를 바랍니다. https://docs.meteor.com/api/pubsub.html

당신은이 개 솔루션을 하나 개의 표준, 다른 해키 있습니다 :

답변

0

그것은 그것에 대해 당신이 여기에 설명 낮은 수준의 출판물 사용할 수 있습니다, 완전히 가능 당신은 문서를 따라

  • 을, 당신은 transform 문서 그것을 클라이언트에게 보내기 전에. 서버 데이터는 영향을받지 않으며 가입에서 데이터 조인 (조인조차도 가능) 할 수 있습니다. 그것은 멋지지만 충돌을 일으킬 수 있고 동일한 페이지의 동일한 컬렉션에 대한 다른 발행물과 충돌 할 수 있으므로 너무 멀리 밀어 넣을 수는 없습니다. 해결책은 여기에서 잘 설명됩니다. How to publish a view/transform of a collection in Meteor?
  • 필요한 데이터로만 세관 객체가 될 클라이언트 전용 콜렉션을 수행 할 수 있습니다. 원본 컬렉션에 서버 측 옵저버가 여전히 있지만 계산없이 클라이언트가 처리하고 표시 할 새 개체를 가져옵니다. 더 많은 코드가 필요하지만이 방법을 사용하면 고전적인 서버 - 클라이언트 모음을 망칠 필요가 없습니다. 좀 지나치게 잔인하기 때문에 자세한 예제가 필요하면 저를 핑하십시오.