我正试图从mongodb的bank_json集合中找到银行余额最高的客户。
这是我的结构。
{
"_id" : ObjectId("575cdc27b2fdf5552d4985ad"),
"first_name" : "JAMES",
"last_name" : "SMITH",
"accounts" : [
{
"account_type" : "Savings",
"account_balance" : 8995952.153640702,
"currency" : "PESO"
},
{
"account_type" : "Checking",
"account_balance" : 3901436.5580737568,
"currency" : "USD"
}
]
}
并且至少有50000个客户记录。
我正在努力寻找银行余额最高的客户。
这就是我所做的,但它没有得到我想要的结果。
db.bank_data.aggregate([ { $unwind: "$accounts" },
{ $group: { _id: "$id", sum: { $max: "$accounts.account_balance" }}}])
{ "_id" : null, "sum" : 9999989.46325779 }
所以我获得了最高的平衡,这很好。但是我也想要这个记录的first_name和last_name具有最高的余额。
我怎样才能得到这个?
答案 0 :(得分:0)
你尝试排序平衡并获得第一行。
db.collection.find().sort({account_balance:-1}).limit(1).pretty()