2016-08-06 9 views
0

私はmongo dbと流星を初めて使っています。 カレンダー:Mongo db meteor

{ 
    "_id" : ObjectId("577a09d3e9ac22d62a20ab01"), 
    "status_visualizacion" : "visible", 
    "status_tipo" : "Pintura", 
    "createdAt" : ISODate("2016-07-04T07:01:39.018Z"), 
    "usuarios_admin" : [ 
     ObjectId("5773976c201bb491f499c180"), 
     ObjectId("577a03db9da98306f624c3d9"), 
     ObjectId("577a041d9da98306f624c3da"), 
     ObjectId("577a07b7e9ac22d62a20aae9"), 
     ObjectId("577a07c6e9ac22d62a20aaea"), 
     "Ys6fiychXcSfCgWox" 
    ], 
    "grupo_usuarios" : [ 
     ObjectId("5773976c201bb491f499c180"), 
     ObjectId("577a03db9da98306f624c3d9"), 
     ObjectId("577a041d9da98306f624c3da"), 
     ObjectId("577a07b7e9ac22d62a20aae9"), 
     ObjectId("577a07c6e9ac22d62a20aaea") 
    ], 
    "calendario_slaves" : [ 
     ObjectId("577b6a0114b9512e1e3f4c10"), 
     ObjectId("577b6a1d14b9512e1e3f4c11"), 
     ObjectId("577b6a2414b9512e1e3f4c12") 
    ] 
} 

私はを照会するためにそれらを使用するために、他の中で、私のクライアント側ヘルパーで、この特定のカレンダーに属しているすべてのcalendarios_slavesのすべてのIDを取得したい私は、下記の一つとして、文書を持っています特定のcalendarios_slave。私はできる限り全力を尽くしましたが、結果はまったくありませんでした。私は、whileループを使用してそれらを分割するSPLITを実装するように、すべての単一のラインにあったbuttheyこのカレンダーのすべてのcalendario_slaveのすべてのIDを取得するために管理しますが

Template.testeo.helpers({ 
    ls: function(){ 

    var list=Calender.find({status_visualizacion: "visible"}); 
    var result=""; 


    list.forEach(function(calender){ 
     result += calender.calendario_slaves + " "; 
    }); 
    console.log(result); 
    console.log("split"); 

    mySplitResult = result.split(","); 
    for (var i = 0; i < mySplitResult.length; i++) { 
       mySplitResult2 =mySplitResult[i].split(" ") 

      for (var j = 0; j < mySplitResult2.length; j++) { 
      myTrozo= mySplitResult2[j]; 
      console.log(myTrozo); 
} 
    } 
    //console.log(myTrozo); 
    return myTrozo; 
    } 
    }); 

:私が現在持っているコードはこれです問題は今私はアクセスのSPLITの結果(myTrozo)forループの外で、最初のconsole.log(myTrozo)が私が必要とするものを表示するが、私はそれを管理する方法を知らないmyTrozoを返します。 何かが間違っていると、より多くの経験を持つ方が私を助けてくれますか? ありがとう

答えて

1
var items = Meteor.subscribe('Calendar'); 

var itemsCursor = items.find({ status_visualizacion: "visible" }); 

while (itemCursor.hasNext()) { 
    item = itemCursor.next(); 
    for (i = 0; i < item.calendario_slaves.length; i++) { 
    console.log(item.calendario_slaves[i]); 
    } 
} 
1

.concatを使用して配列を連結します。文字列に変換して分割する必要はありません。

Template.testeo.helpers({ 
    ls() { 
    const result=[]; 
    Calender.find({status_visualizacion: "visible"}).forEach(e => { 
     if (e.calendario_slaves && e.calendario.slaves.length){ // guard against missing/empty 
     results.concat(e.calendario_slaves); 
     } 
    }); 
    return result; 
    } 
});