一次搜索两个Mongo集合的问题

时间:2016-01-19 14:37:04

标签: mongodb meteor

我有两个mongo系列。这些节目'收集有关于客户的信息'出勤,所以Jane Doe可能有多个文件。人口统计'集合包含地址,电子邮件,电话号码等信息。客户在此集合中有一个文档。顺便说一句,这些集合通过.csv文件导入Mongo。我有一个应用程序的一部分,当用户单击特定客户端的按钮时,我需要搜索这两个集合。因此,如果用户选择Jane Doe,则会查询两个集合,以便显示来自两个集合的信息。

Template.clientGrid.helpers({
  'demographic': function() {
  var fullName = Session.get('clientName');
  return Demographic.find({ FullName: fullName });
  },

  'programs': function () {
     var fullName = Session.get('clientName');
     return Programs.find({FullName: fullName});
  }
});

有一些瓷砖填充了为Jane Doe找到的信息。在查询集合并填充图块后,看起来一切都很好,除非我稍后发现页面有问题。应该可以点击每个图块来加载模态。但通常在单击图块时不会加载模态。如果用户导航离开此页面,则模态将自发加载。即使平铺加载信息,页面也会以某种方式绑定。

我发现如果模板助手只查询一个集合,则单击时瓷砖会加载模态。一切都很好。因此,看起来这两个集合的查询可能与我这样做的方式有问题。我可以编码它,以便我可以先查询一个集合,然后一旦完成,查询另一个集合?或许它们已经按顺序被查询,还有一些其他问题正在发生。无论问题是什么,我都需要解决它。

编辑:以下是填充信息的其中一个图块行的示例:

<div class="row">

  <div class="col s4" id="roommate-change" style="background-color: #1f3a93; color: #fff; height: 275px; position: relative; top: -115px; overflow: auto;">
    <p class="grid-title">Roommate Requests:</p>
      {{#each programs}}
    <p>{{formatCampYear CampYear}}: {{formatRoommate RoomateRequest}}</p>
      {{/each}}
  </div>

  <div class="col s4" id="medicine-change" style="background-color: #2574a9; color: #fff; height: 275px; position: relative; top: -115px">
    <p class="grid-title">Medicine:</p>
      {{#each programs}}
    <p>{{MedicalCondition}}</p>
      {{/each}}
  </div>

  <div class="col s4" id="ss-info-change" style="background-color: #59abe3; color: #fff; height: 275px; position:relative; top: -115px">
    <p class="grid-title">SS Info:</p>
      {{#each demographic}}
    <p class="med-small">Mom's Name: {{MomFName}}</p>
    <p class="med-small">Dad's Name: {{DadFName}}</p>
    <p class="med-small">Mom's Phone: {{MomPhone}}</p>
    <p class="med-small">Dad's Phone: {{DadPhone}}</p>
    {{/each}}
  </div>
</div>

对于模态,我使用Modalize包:

Template.clientGrid.events({
  'click #roommate-change': function () {
    Materialize.modalize.display({
      template: 'roommateChange',
      title: 'Change Roommate Information'
    })
  },

  'click #medicine-change': function () {
     Materialize.modalize.display({
       template: 'medicalChange',
       title: 'Change Medical Related Information'
     })
  },

  'click #ss-info-change': function () {
     Materialize.modalize.display({
     template: 'ssinfoChange',
     title: 'Change SS Parent Information'
     })
   }
});

注意:有趣的发现...如果我在模板中注释掉人口统计查询并且只允许程序查询,则模态不会加载。如果我注释掉程序查询并仅允许人口统计查询,则会加载模态。

注意2:将人口统计查询从.find()更改为.findOne()并不起作用。没有人口统计数据加载。它只适用于.find()。这很奇怪。

更多信息:这是我发现的内容:根据客户端是否多次进入程序集合,模式不会加载。如果Jane Doe在程序集合中只有一个条目(或零),则模态将起作用。程序集合中的所有名称不止一次都无法加载模态。现在我有了原因,我需要找到解决方案。

0 个答案:

没有答案