sql >> Database >  >> NoSQL >> MongoDB

Subdocumentarray retourneren via Meteor / Mongo

Je enige probleem is het proberen om een ​​cursor en een subarray binnen hetzelfde blok te herhalen. Als je je items van elkaar scheidt sjabloon en een individueel item sjabloon, krijgt u het gewenste resultaat.

Voor de vereenvoudiging heb ik uw code gewijzigd om er als volgt uit te zien:

Dit is je hoofdtekst:

<body>
    {{> items}}
</body>

<template name="items">
  {{#each items}}
    {{> item}}
  {{/each}}
</template>

<template name="item">
  <h2>{{itemText}} tags are:</h2>
  <ul>
  {{#each itemTags}}
    <li>{{this}}</li>
  {{/each}}
  </ul>
</template>

En dit is je helper:

Template.items.helpers({
  items: function () {
    return Items.find();
  }
})

Ervan uitgaande dat een itemdocument er als volgt uitziet:

{ 
  itemText: String,
  itemTags: Array
}

Ik heb een app op Meteorpad gemaakt waarmee je kunt spelen:

http://meteorpad.com/pad/BmRQ5fkwWEMBKszJW/SO-27951102

u kunt de code daar verder wijzigen en de wijzigingen in realtime zien. Het is eigenlijk jsfiddle voor meteoor.

Bewerken: geïnspireerd door de opmerking van @chip-castle, kunt u in feite een enkele sjabloon gebruiken met geneste each blokken:

<template name="items">
  {{#each items}}
    <h2>{{itemText}} tags are:</h2>
    <ul>
    {{#each itemTags}}
      <li>{{this}}</li>
    {{/each}}
    </ul>
  {{/each}}
</template>

Maar het gebruik van afzonderlijke sjablonen is flexibeler in zowel het ontwerp als het afhandelen van evenementen waar nodig.



  1. mangoest cursor batchgrootte

  2. Ga:maak io.Writer-interface om in te loggen op de mongodb-database

  3. 2 manieren om een ​​verzameling in MongoDB te verwijderen

  4. Redis Pub/Sub ServiceStack, de discussie annuleren