Meteor和Mongo数据库

Meteor and Mongo DB

本文关键字:数据库 Mongo Meteor      更新时间:2023-09-26
我有两个问题。1( 我在MongoDB calender和calendarios_slaves中有这两个文档。calender有一个子文档,其数组为calendarios_slaves ObjectID。我尝试了几个查询,但都没有结果,我如何提取calender文档中所有calendarios_slaves的ObjectID。?

这是calender文档:

 {
    "_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")
    ]
}

2( 在流星中的javascript中,是否有从查询中提取节点的功能。我使用了一个查询来获取流星(客户端(javascript中的所有文档,但无法获取节点,尽管我可以在html中使用#each循环来实现这一点。。

 Meteor.subscribe("calenders_user_visible");
    Template.calendarios_visibles.helpers({
    ls_calenderios_visibles: function(){
    var result = Calender.find({status_visualizacion: "visible"});
    return result;
    }
});


<template name= "calendarios_visibles">

日历可见

<ul>
     {{#each ls_calenderios_visibles}}
<li class = "calendarios_slave">  Calendarios slaves: {{calendario_slaves}} </li>
</ul>
{{/each }}
</template>

浏览器中的结果:

日历可见!

Pintura visible
    Calendarios slaves: ObjectID("577b6a0114b9512e1e3f4c10"),ObjectID("577b6a1d14b9512e1e3f4c11"),ObjectID("577b6a2414b9512e1e3f4c12")
vehiculo visible
    Calendarios slaves: ObjectID("577b6a0114b9512e1e3f4c10"),ObjectID("577b6a1d14b9512e1e3f4c11"),ObjectID("577b6a2414b9512e1e3f4c12")
montaje visible
    Calendarios slaves: ObjectID("577b6a0114b9512e1e3f4c10"),ObjectID("577b6a1d14b9512e1e3f4c11"),ObjectID("577b6a2414b9512e1e3f4c12")

有没有办法在得到查询结果后立即在Javascript中得到这些ObjectId??我只对这些ObjectId值感兴趣,以便进行其他查询而不在浏览器中显示它们。请有经验更丰富的人帮我一下好吗?感谢

对于第一个:

如果你想得到一个或多个日历文档的结果,有两种方法。

对于单个文档:

   var calender = calenderCollection.findOne('ID');
   var result= [];
   if(calender.calendario_slaves.map){
       result = calender.calendario_slaves.map(function(data){
                    return data;
                })
   }
  return data;

对于多个文档:

   var calenders = calenderCollection.find({query}).fetch();
   var result= [];
   for ( var i = 0; i < calenders.length; i++ ) {
       for ( var j = 0; j < calenders[i].calendario_slaves; j++ ) {
           result.push(calenders[i].calendario_slaves[j]);
       }
   }
   return result;

对于第二个:

<ul>
     {{#each ls_calenderios_visibles}}
          {{#each calendario_slaves}}
          <li class = "calendarios_slave">  
              Calendarios slaves: {{this}} // You can pass this into another helper to perform some operation.
          </li>
          {{/each}}
     {{/each }}
</ul>

@注意:你的问题2对我来说不太清楚,如果你需要其他问题2,请告诉我。