Mongo db meteor

Mongo db meteor

本文关键字:meteor db Mongo      更新时间:2023-09-26

我是mongo db和meter的新手。我有一份文件如下:压延机:

{
    "_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_slave的所有Id,以使用它们查询特定的calendario_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;
    }
    }); 

我设法检索到了这个日历的所有日历的所有Id,但它们都在一行中,所以我实现了SPLIT,使用while循环来分割它们,但现在的问题是,我无法访问for循环之外的SPLIT结果(myTrozo(,第一个控制台.log(myTro佐(显示了我需要的东西,但我不知道如何管理它并返回myTrozo。如果我做错了什么,有谁能比我更有经验来帮助我吗。感谢

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

使用.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;
  }
});