duanluan8390 2017-06-21 22:59
浏览 406

在laravel mongodb中对数组对象求和

I am working on mongoDB with Laravel using jenssegers. And i am trying to sum based on Abonos.price. I have a MongoDb document like this:

`{ 
"_id" : ObjectId("594a89358b85112444002924"), 
"cliente" : "blabla", 
"tipo" : "bla bla", 
"paquete" : "bla bla", 
"date" : "2017-06-14", 
"content" : "picture", 
"cost" : NumberInt(200), 
"status" : NumberInt(2), 
"Abonos" : [
    {
        "price" : "200", `enter code here`
        "date" : "2017-06-21"
    }, 
    {
        "price" : "300", 
        "date" : null
    }
], }`

I want to sum Abonos.price to get "500" (200+300) I have this function in my laravel controller:

$result = Work::raw(function($collection){
    return $collection->aggregate(array(
       array('$unwind' => '$Abonos'),
       array('$group' => array(
           "_id" => '$_id',
            "total" => array('$sum' => '$Abonos.price')
       )),
  ));});
return $result;

But i get

[{"_id":"594a95cc8b85112444002925","total":0}

instead of

[{"_id":"594a95cc8b85112444002925","total":500}"

I would like to make $return = 500

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥100 求数学坐标画圆以及直线的算法
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
    • ¥15 名为“Product”的列已属于此 DataTable
    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 自己瞎改改,结果现在又运行不了了
    • ¥15 链式存储应该如何解决
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站