MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Връщане на масив от поддокументи чрез Meteor / Mongo

Единственият ви проблем е да се опитвате да итерирате курсор и подмасив в рамките на един и същ всеки блок. Ако разделите своите items шаблон и отделен item шаблон, ще получите желания резултат.

С цел опростяване промених кода ви, за да изглежда така:

Това е основното ви тяло:

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

А това е вашият помощник:

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

Ако приемем, че документът за елемент изглежда така:

{ 
  itemText: String,
  itemTags: Array
}

Създадох приложение на Meteorpad, с което да играете:

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

можете допълнително да промените кода там и да видите промените в реално време. Това е основно jsfiddle за meteor.

Редактиране: вдъхновен от коментара на @chip-castle, всъщност можете да използвате един шаблон с вложени each блокира:

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

Но използването на отделни шаблони е по-гъвкаво както при проектирането, така и при обработката на събития, където е необходимо.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. DateTime с MongoDB/Mongoid и Rails 3 не се попълва

  2. Преброяване на съвместни събития с помощта на рамка за агрегиране на Mongo

  3. Вложени коментари в MongoDB

  4. Mongodb concat int и низ

  5. Mongoose актуализира или вмъква много документи