2016-08-06 2 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, что принадлежит к этому конкретному Календарю в моей стороне клиента помощнике в другом, чтобы использовать их для запроса в частности 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 были все в одной строке, так что я реализовал SPLIT, чтобы разделить их, используя время цикла, но проблема в том, что я не могу получить доступ к 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; 
    } 
}); 
Смежные вопросы