MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mengembalikan larik subdokumen melalui Meteor / Mongo

Satu-satunya masalah Anda adalah mencoba mengulangi kursor dan sub array dalam setiap blok yang sama. Jika Anda memisahkan items template dan items individu template, Anda akan mendapatkan hasil yang diinginkan.

Demi penyederhanaan, saya mengubah kode Anda agar terlihat seperti ini:

Ini adalah tubuh utama Anda:

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

Dan ini adalah pembantu Anda:

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

Dengan asumsi dokumen item terlihat seperti:

{ 
  itemText: String,
  itemTags: Array
}

Saya telah membuat aplikasi di Meteorpad untuk Anda mainkan:

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

Anda selanjutnya dapat mengubah kode di sana dan melihat perubahan secara realtime. Ini pada dasarnya adalah jsfiddle untuk meteor.

Sunting: terinspirasi oleh komentar @ chip-castle, Anda sebenarnya dapat menggunakan satu templat dengan each bersarang blok:

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

Tetapi menggunakan template terpisah lebih fleksibel dalam mendesain dan menangani acara jika diperlukan.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Upsert tidak berfungsi untuk updateOne bulkWrite v3.4

  2. Emulasi transaksi CouchDB/Couchbase/MongoDB?

  3. Data kedaluwarsa luwak tetapi tetap di database

  4. Mongodb menggabungkan int dan string

  5. mongodb scala driver - tidak dapat mengambil dokumen