MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zwracanie tablicy poddokumentów przez Meteor/Mongo

Twoim jedynym problemem jest próba iteracji kursora i podtablicy w tym samym każdym bloku. Jeśli oddzielisz items szablon i indywidualny item szablon, otrzymasz pożądany wynik.

W celu uproszczenia zmieniłem Twój kod, aby wyglądał tak:

To jest twoje główne ciało:

<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>

A to jest Twój pomocnik:

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

Zakładając, że dokument towaru wygląda następująco:

{ 
  itemText: String,
  itemTags: Array
}

Stworzyłem aplikację na Meteorpad, z którą możesz się bawić:

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

możesz dalej zmieniać tam kod i zobaczyć zmiany w czasie rzeczywistym. Jest to w zasadzie jsfiddle dla meteoru.

Edytuj: zainspirowany komentarzem @chip-castle, możesz w rzeczywistości użyć jednego szablonu z zagnieżdżonym each bloki:

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

Ale używanie osobnych szablonów jest bardziej elastyczne zarówno pod względem projektowania, jak i obsługi zdarzeń tam, gdzie to konieczne.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Porządkowanie pól z zapytania find z projekcją

  2. @EnableMongoAuditing dla MongoDB w Cloud Foundry / mongolab

  3. Jak zacząć korzystać z ClusterControl

  4. Wyrażenie MongoDB Compass Filter do wyrażenia Go bson.M

  5. MongoDB -- duża liczba baz danych