在流星中查找子数组文档

时间:2015-02-06 07:37:18

标签: mongodb meteor

我正在使用以下文档

{
"_id" : 123344223,
"firstName" : "gopal",
"gopal" : [ 
{
 "uuid" : "123",
 "name" : "sugun",


"kiran" : [ 
{
 "uuid" : "456",
 "name" : "ghb"
}

       ]
}
]
}

我想从数组kiran的第一个文档中检索名称并将其打印在表格中......

这是我试过的

Template.table.helpers({
ProductManager: function () {
return ProductManager.find({_id:123344223},{gopal:{$elemMatch:{uuid:"123"}}});
}
 })    

其中ProductManager是我的集合,在common.js中定义

ProductManager = new Meteor.Collection("ProductManager"); 

这是我的模板

<template name="table">
<table>
<thead>
<tr>
<th>NAME</th>
<th>UUID</th>
</tr>
</thead>
<tbody>
{{#each ProductManager.gopal.kiran}}
<tr>
 <td>{{name}}</td>
 <td>{{uuid}}</td>
 </tr>
 {{/each}}
 </tbody>
 </table>

当我尝试这个时

ProductManager.find({_id:123344223},{gopal:{$elemMatch:{uuid:"123"}}}); 

我可以在mongo shell中获得这个

{
"_id" : 123344223,
"firstName" : "gopal",
"gopal" : [ 
{
 "uuid" : "123",
 "name" : "sugun",


"kiran" : [ 
{
 "uuid" : "456",
 "name" : "ghb"
}

       ]
}
]
}

但不能打印表中Kiran数组的名称和uuid ....... plzz帮助我解决这个问题...提前致谢

1 个答案:

答案 0 :(得分:0)

  1. 检查您的json格式,因为它看起来对我无效
  2. 检查您的meteor项目是否缺少autopublish / insecure,如果是,则实现pub / sub功能
  3. Discovermeteor有一个很好的指南 Discovermeteor

    子文档搜索的另一个stackoverflow帖子 How to write Mongo query to find sub document with condition