我有一个集合:
$('#ssn').keyup(function() {
var val = this.value.replace(/\D/g, '');
var newVal = '';
while (val.length > 3) {
newVal += val.substr(0, 3) + '-';
val = val.substr(3);
}
newVal += val;
this.value = newVal;
});
每个条目都有一个名为 children 的数组。子项中的每个条目都有一个名为 childrenOfChildren 的数组。 childrenOfChildren中的每个条目都有一个名为 price 的属性。我希望在这个整体系列中获得最大的价格。我怎样才能做到这一点?请帮帮我!
答案 0 :(得分:2)
你可以使用$ unwind和$ group来做到这一点。
db.collection.aggregate([
{
$unwind:"$children"
},
{
$unwind:"$children.childrenOfChildren"
},
{
$group:{
_id:null,
maxPrice:{
$max:"$children.childrenOfChildren.price"
}
}
}
])
输出:
{ "_id" : null, "maxPrice" : 110 }
答案 1 :(得分:1)
通过aggregate
和$unwind
使用$group
查询,您可以从整体收集中获得最高价格。
可以尝试此查询:
db.getCollection('collectionName').aggregate([
{$unwind: "$children"},
{$unwind: "$children.childrenOfChildren"},
{$group:{_id: null, price:{$max: "$children.childrenOfChildren.price"}}}
])