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です。

    編集: @ chip-castleのコメントに触発されて、実際にはネストされたeachを持つ単一のテンプレートを使用できます ブロック:

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

    ただし、個別のテンプレートを使用すると、必要に応じてイベントの設計と処理の両方でより柔軟になります。



    1. 同じドキュメント内の2つの配列フィールドを比較する

    2. mongoのコマンドライン認証が失敗する

    3. ネストされたスキーマ/サブドキュメントのオブジェクト内のマングースfindById()-集約

    4. mongodb:textSearchを有効にする