如何从mongodb中的集合中获取聚合记录

时间:2016-07-05 02:08:33

标签: mongodb

我正试图从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具有最高的余额。

我怎样才能得到这个?

1 个答案:

答案 0 :(得分:0)

你尝试排序平衡并获得第一行。

db.collection.find().sort({account_balance:-1}).limit(1).pretty()