1 回答

TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊
我也是初學(xué)一周這樣,不知道還有不有更好的寫法
源數(shù)據(jù)
db.test3.insert([
{
"name" : "Wetpaint",
"founded_year" : 2004,
"funding_rounds" : [
{
"raised_amount" : 5250000
},
{
"raised_amount" : 9500000
},
{
"raised_amount" : 25000000
},
{
"raised_amount" : 9500000
},
{
"raised_amount" : 25000000
}
]
},{
"name" : "Wddddt",
"founded_year" : 2004,
"funding_rounds" : [
{
"raised_amount" : 5250000
},
{
"raised_amount" : 9500000
},
{
"raised_amount" : 25000000
}
]
},
{
"name" : "Wcccct",
"founded_year" : 2004,
"funding_rounds" : [
{
"raised_amount" : 520000
},
{
"raised_amount" : 900000
},
{
"raised_amount" : 2500000
},
{
"raised_amount" : 950000
},
{
"raised_amount" : 25000000
}
]
},{
"name" : "Wetaaat",
"founded_year" : 2004,
"funding_rounds" : [
{
"raised_amount" : 5250000
},
{
"raised_amount" : 9500000
},
{
"raised_amount" : 25000000
}
]
}
])
sql
db.getCollection('test3').aggregate([
{
$project: {
'name': 1,
'founded_year': 1,
'funding_rounds': 1,
'funding_rounds_size': {$size: '$funding_rounds'},
'funding_rounds_avg': {$avg: '$funding_rounds.raised_amount'}
}
},{
$match: {
'founded_year': 2004,
'funding_rounds_size': {$gte: 5}
}
},{
$sort: {
'funding_rounds_avg': 1
}
}
])
感覺這種查詢方法會好點,雖然寫的有點多,不過效率應(yīng)該快點
db.getCollection('test3').aggregate([
{
$match: {
'founded_year': 2004
}
},{
$project: {
'name': 1,
'founded_year': 1,
'funding_rounds': 1,
'funding_rounds_size': {$size: '$funding_rounds'},
'funding_rounds_avg': {$avg: '$funding_rounds.raised_amount'}
}
},{
$match: {
'funding_rounds_size': {$gte: 5}
}
},{
$sort: {
'funding_rounds_avg': 1
}
}
])
添加回答
舉報