share/sharedb

Projection's nested fields aren't being updated when subscribing to a query

Open

#365 opened on Apr 21, 2020

View on GitHub
 (1 comment) (0 reactions) (0 assignees)JavaScript (449 forks)batch import
enhancementhelp wanted

Repository metrics

Stars
 (5,791 stars)
PR merge metrics
 (Avg merge 19h 56m) (5 merged PRs in 30d)

Description

Created a projection as follows:

  backend.addProjection 'gameInfos', 'games',
    id: true
    testGame: true
    host: true
    classIds: true
    createdAt: true    
    mode: true
    'scenario.name': true
    'scenario.labels.publish': true
    'scenario.labels.unpublish': true
    'scenario.scenarioName': true
    'scenario.playedAt': true
    'scenario.gameCategory': true
    'scenario.gameType': true
    'scenario.password': true
    'scenario.roles': true

Subscribed to a regular query:

   $games = @model.query 'gameInfos', someQuery
   @model.subscribe $games, =>
       @model.ref '_page.games', $games
       @page.render ...

All first-level nested fields, e.g. mode, host are being reactively updated. But the specified nested fields, e.g. scenario.name are not. It will work fine if I pass just scenario: true into addProjection, i.e. all nested fields under scenario object will be updated reactively, but what if I only want a subset of the nested fields.

Contributor guide