javascript - Mongodb内嵌文档数组数据求和
PHP中文网
PHP中文网 2017-04-10 15:20:06
[JavaScript讨论组]

请问如何计算“com”里面所有文档中“a”的和,并且update将这个和当作一个最外层的键保存,是要用js解决吗?我想批量计算,这样的文档有20000多个...

{ 
    "_id" : 3,
    "repos" : { 
        "com" : [ 
            { "a" : 16555, "t" : 141, "d" : 7633 } ,
            { "a" : 14358, "t" : 121, "d" : 7133 } ,
            { "a" : 12356, "t" : 108, "d" : 2137 } ,  
         ], 
         "self" : [ 
             {     
                 "forks_count" : 54, 
                 "id" : 7370053, 
                 "rank_score" : 0.0006762191350350863
             },
             {     
                 "forks_count" : 54, 
                 "id" : 7370053, 
                 "rank_score" : 0.0006762191350350863
             }]
     }
}
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
阿神

使用 Mongodb 的聚合可以实现求和。但是不知道是不是楼主想要的实现方式。

javascriptdb.Collection.aggregate([
    { $unwind: "$repos.com" },
    { $group: { _id: "$_id", update: { $sum : "$repos.com.a" } } }
])

下面是我使用 Robomongo 是操作的例子:

PHPz

这样需要读写的复杂操作,没有直接的数据库查询语言可以使用。聚合可以进行复杂计算,但是只能读数据,写还要自己写代码完成。所以,不如直接随便用你喜欢的语言花10分钟写个程序,20000个文档执行起来最多也就几秒吧…… MongoDB 的驱动都那么容易上手,不成问题啦。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号