복붙노트

[MONGODB] 한 간행물은 다른 간행물에서 중첩 된 필드를 숨기고

MONGODB

한 간행물은 다른 간행물에서 중첩 된 필드를 숨기고

푸 이름이 같은 수집을위한 두 개의 출판물을 감안할 때. fooList은 특정 필드를 반환해야하지만 fooDetail는 전체 문서를 반환해야합니다.

섬기는 사람:

Meteor.publish 'fooList', ->
    return Foo.find(
        {}
        { fields:
            foo: true
            'bar.bas': true
        })

Meteor.publish 'fooDetail', (foo_id) ->
    return Foo.find _id: foo_id

고객:

Meteor.subscribe 'fooList'
Meteor.subscribe 'fooDetail', some_id

나는 fooDetail에 가입 할 때 전체 foo를 얻을 것으로 예상. 그러나 '바'(중첩 된 문서)의 모든 필드는 'bar.bas'필드를 제외하고 사용할 수 없습니다.

이 버그 또는 유성이 방식으로 작동해야합니까? (나는 유성 1.0.3.2 및 철 - 라우터에 현재 해요)

해결법

  1. ==============================

    1.이것은 유성의 MergeBox의 알려진 제한이있어, 버그가 아닙니다. 그것은 그 물기 대부분의 유성 개발자 번 그 혼란 문제 중 하나입니다.

    이것은 유성의 MergeBox의 알려진 제한이있어, 버그가 아닙니다. 그것은 그 물기 대부분의 유성 개발자 번 그 혼란 문제 중 하나입니다.

    워드 프로세서 :

    당신은 가능한 해결 방법에 대한이 게시물을 볼 수 있습니다. 귀하의 예제에서처럼 보이도록 게시하여 수정할 수 있습니다 :

    Meteor.publish 'fooList', ->
      Foo.find {}, fields: foo: 1, bar: 1
    

    즉, 충돌을 방지 최상위 바 필드의 모든 게시 것이지만, 특정 사용 사례에 허용되지 않을 수 있습니다.

  2. ==============================

    2.당신의 술집 / 서브 선을 보인다. 내 생각 엔 당신이 fooDetail 하위에 반응성을 추가하지 않은 것입니다. 나에게 호의를 수행합니다 :

    당신의 술집 / 서브 선을 보인다. 내 생각 엔 당신이 fooDetail 하위에 반응성을 추가하지 않은 것입니다. 나에게 호의를 수행합니다 :

  3. from https://stackoverflow.com/questions/28969223/one-publication-is-hiding-nested-fields-from-another-publication by cc-by-sa and MIT license