[英]Aggregate group multiple _id and access
我想用Angular2和* ngFor显示一个集合。
我尝试了类似*ngFor ="let x in data" {{x._id.category}}
但它没有用。
我如何显示这个对象,或者有没有办法用mongoose做到这一点?
gquery= [{
$group: {
_id: { category: '$category', specCategory: '$specCategory' },
total:{ $sum:1 }
}
}];
Experiences.aggregate(gquery, function (err, results) {
callback(err, results || {min: 0, max: 0});
});
HTML
<div class="col-sm-3">
<select class="guest categorydd" [(ngModel)]="category_search" [ngModelOptions]="{standalone: true}" (ngModelChange)="changeCategory($event)">
<option value="Alle Kategorien" >All Categories</option>
<option *ngFor="let x of countedCategory " value="{{x._id}}"> {{x._id}} ({{x.total}})</option>
</select>
</div>
组件文件
countedCategory: any[];
this.countedCategory = data[0].priceBoundaries;
据我所知,你应该尝试这样的事情:
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello {{name}}</h2>
</div>
<div class="col-sm-3">
<select class="guest categorydd" [(ngModel)]="category_search" [ngModelOptions]="{standalone: true}" (ngModelChange)="changeCategory($event)">
<option value="Alle Kategorien" >All Categories</option>
<option
*ngFor="let x of countedCategory"
[value]="x._id.category + '.' + x._id.specCategory">
{{x._id.category}}: {{x._id.specCategory}} ({{x.total}})
</option>
</select>
</div>
`,
})
export class App {
name:string;
category_search;
countedCategory = [
{
_id: { category: 'reisen', specCategory: 'romantik' },
total: 100
},
{
_id: { category: 'reisen', specCategory: 'abenteuer' },
total: 77
},
{
_id: { category: 'reisen', specCategory: 'essen' },
total: 186
}
];
constructor() {
this.name = 'Angular2'
}
private changeCategory(event: any) {
console.log(event);
}
}
您不能将对象用作value
。 这将导致[object object]
!
您需要一个唯一键或创建一个像我上面的例子。
live-demo: https : //plnkr.co/edit/uy5VS9cOt73qY37kQ00X?p=preview
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.