2016-08-06 194 views
0

我是mongo db和meteor的新手。我有一個文件,如下一個: 日曆: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的所有標識的屬於這個特殊的日曆,在其他我的客戶端幫助使用它們用來查詢特定的calendarios_slave。我盡我所能,但都沒有結果。我目前的代碼是這樣的:

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; 
    } 
    }); 

我設法檢索該日曆的所有calendario_slave butthey都在一行的所有標識的,所以我實施了分裂,分裂他們使用while循環,但現在的問題是我無法在for循環之外訪問SPLIT結果(myTrozo),第一個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; 
    } 
});