求和查询mongodb php

求和查询mongodb php,php,mongodb,sum,Php,Mongodb,Sum,我有这个收藏 > db.test.find() { "_id" : ObjectId("5398ddf40371cdb3aebca3a2"), "name" : "ahmed", "qte" : 30 } { "_id" : ObjectId("5398de040371cdb3aebca3a3"), "name" : "demha", "qte" : 35 } { "_id" : ObjectId("5398de140371cdb3aebca3a4"), "name" : "ahmed",

我有这个收藏

> db.test.find()
{ "_id" : ObjectId("5398ddf40371cdb3aebca3a2"), "name" : "ahmed", "qte" : 30 }
{ "_id" : ObjectId("5398de040371cdb3aebca3a3"), "name" : "demha", "qte" : 35 }
{ "_id" : ObjectId("5398de140371cdb3aebca3a4"), "name" : "ahmed", "qte" : 50 }
{ "_id" : ObjectId("5398de210371cdb3aebca3a5"), "name" : "ahmed", "qte" : 60 }
我想对“qte”求和,其中“name”=“ahmed”,并用php打印求和 我知道如何使用SQL,但我不知道它在mongodb中是如何使用的

谢谢:)

使用该框架

假设您对当前集合有一个名称为
$collection

result = $collection->aggregate(array(
    array(
        '$match' => array(
            'name' => 'ahmed'
        )
    ),
    array(
        '$group' => array(
            '_id' => NULL,
            'total' => array(
                '$sum' => '$qte'
            )
        )
    )
));
这两个部分是满足标准的步骤,以及使用


有关更多示例,请参见其他和。这是通过聚合语句完成的:

db.test.aggregate([
    {
        $match: {
            name: "ahmed"
        } 
    },
    {
        $group: {
            _id:"$name",
            total: {
                $sum: "$qte" 
            }
        }
    }
])

参见本S.O问题:两年前的答案的副本,该答案不被接受,且给出的答案要么效率低下,要么不正确。有什么好处?答案上的时间戳也被修改了,真的很有趣。@NeilLunn时间戳?他们看起来很好me@NeilLunn这里的第一个答案似乎也通过例子回答了这个问题。从这个用户之前的问题来看,这个问题似乎也不被接受,他的问题似乎是个人的低质量问题,也就是说:在这种情况下,通常最好直接去某个地方给他提供参考,而不是按需进行代码转换,并鼓励他进一步提出类似的问题。@Sammaye不能对你不满。当我发布时,这里没有其他答案。我的观点是,当重复的问题没有足够高质量的答案时,我看不到重复的问题。我以前跟别人提过的东西。因此,这些问题/答案应该关闭。OP对问题接受的处理不是最好的,但也与在可以给出更好的答案时关闭问题无关。对聊天不感兴趣。这里的评论是为了重新开放投票。