我有一个包含以下结构对象列表的MongoDB:
{
"_id" : ObjectId("11122223333"),
"name" : "Bob",
"availability" : "Availabile",
"toolcap" : {
"toolAA" : {
"skill" : "certified",
"tool" : "tool1",
"caps" : [
{
"name" : "cap1",
"expertise" : "pro"
},
{
"name" : "cap2",
"expertise" : "pro"
}
]
},
"toolBB" : {
"skill" : "certified",
"tool" : "tool2",
"caps" : [
{
"name" : "cap3",
"expertise" : "semi-pro"
},
{
"name" : "cap4",
"expertise" : "novice"
}
]
}
},
"local" : {
"password" : "password123",
"email" : "bob@email.com",
"name" : "Bob"
}
}
我通过这个数据重复集合中的每个对象(表格的其余部分未显示):
<tr ng-repeat-start="x in users | filter:{'name':'Bob'}:true" ng-if="false"></tr>
<tr ng-repeat-start="y in x.toolcap" ng-if="false"></tr>
<tr ng-repeat="z in y.caps">
<td>{{y.tool}}</td>
<td>{{z.name}}</td>
<td>{{z.expertise}}</td>
<td>{{x.availability}}</td>
</tr>
<tr ng-repeat-end ng-if="false"></tr>
<tr ng-repeat-end ng-if="false"></tr>
这很好 - 我可以按名称过滤,相关的值会进入同一行。我遇到的问题是当我尝试使用&#34;工具&#34;进行过滤时,例如,想要查看仅与&#34; tool1&#34; (&#34; tool1&#34;必须存在,否则不要给我一行。同样的名字:Bob必须存在)。我想我可以在第2行做以下事情,只看到与&#34; tool1&#34;相关的事情:
<tr ng-repeat-start="x in users | filter:{'name':'Bob'}:true" ng-if="false"></tr>
<tr ng-repeat-start="y in x.toolcap | filter:{'tool':'tool1'"}:true" ng-if="false"></tr>
<tr ng-repeat="z in y.caps">
<td>{{y.tool}}</td>
<td>{{z.name}}</td>
<td>{{z.expertise}}</td>
<td>{{x.availability}}</td>
</tr>
<tr ng-repeat-end ng-if="false"></tr>
<tr ng-repeat-end ng-if="false"></tr>
无论我在新过滤器中加入什么,我都会收回所有内容。我希望该表如下(以逗号分隔的列):
row1:tool1,cap1,pro,available
row2:tool1,cap2,pro,available
但我得到的东西与我的第一个html片段相同:
row1:tool1,cap1,pro,available
row2:tool1,cap2,pro,available
row3:tool2,cap3,semi-pro,available
row4:tool2,cap4,新手,可用