一个文档字段的总和mongodb

时间:2019-06-05 16:37:00

标签: node.js mongodb aggregate-functions

我需要使用以下逻辑来查找某些指定字段的总和:查找文档<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="container"> <div class="float left"> <div class="progress-circle" data-progress="0"></div> </div> <div class="float left"> <div id="content-scroll"> <div id="add-scroll-height"> Start scrolling this div.... <br/><br/> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent id rutrum quam, ut lobortis neque. Integer fermentum ante vehicula diam fermentum vehicula a nec enim. Fusce efficitur ex ut lorem aliquet aliquam. Integer luctus, ex quis imperdiet aliquet, ipsum orci eleifend ex, non scelerisque nunc ligula eget nisi. Suspendisse congue eros elementum tortor volutpat rutrum in eu dui. Cras at iaculis leo. Cras accumsan sapien massa, quis fringilla sem egestas vitae. Sed nec feugiat velit. Suspendisse euismod fringilla interdum. Sed aliquet placerat ligula, ut gravida turpis ornare quis. Vivamus eget purus ultricies purus pulvinar sollicitudin quis et ipsum. Donec tincidunt odio posuere molestie laoreet. Nulla in justo eget lectus blandit tempus a vitae tortor. Donec id vulputate sem. Sed porta quam id metus sollicitudin, in volutpat arcu laoreet. Vivamus augue sem, semper id interdum congue, convallis ac leo. Sed varius sem ut ante malesuada, eu pulvinar lorem ullamcorper. Fusce vel augue nisl. In et est sem. Aliquam aliquet gravida nulla eget varius. Ut placerat sit amet nisl sit amet condimentum. Praesent quis egestas nulla. Donec in lacus id purus sodales condimentum eu vitae felis. </div> </div> </div> </div>

文档结构如下:

CREATE TABLE t1 (
    id bigint,
    CONSTRAINT PK_t1 PRIMARY KEY CLUSTERED (id)
);

CREATE TABLE t2 (
    id bigint,
    CONSTRAINT PK_t2 PRIMARY KEY CLUSTERED (id)
);

CREATE TABLE cross_t1_t2 (
    t1_id bigint,
    t2_id bigint,
    CONSTRAINT PK_cross_t1_t2 PRIMARY KEY CLUSTERED (t1_id,t2_id),
    CONSTRAINT FK_cross_t1_t2_t1 FOREIGN KEY (t1_id)     
        REFERENCES customers (id)     
        ON DELETE CASCADE
        ON UPDATE CASCADE,
    CONSTRAINT FK_cross_t1_t2_t2 FOREIGN KEY (t2_id)     
        REFERENCES addresses (id)     
        ON DELETE CASCADE
        ON UPDATE CASCADE
);

如何在MongoDB中执行此查询?

3 个答案:

答案 0 :(得分:1)

如果要对一组非常特定的字段进行操作,则可以在这些特定字段上使用$sum运算符。 $addFields阶段根据某些表达式的结果将任意数量的新字段添加到管道中的所有文档中。在这种情况下,我们对指定的字段执行总和,以$为前缀表示现有的文档字段,并将结果存储在新的field_total字段中。然后,通过使用$match运算符(小于或等于),对修改后的文档执行field_total,以仅捕获最大值为6的{​​{1}}的文档。 )。最终的管道如下所示:

$lte

答案 1 :(得分:1)

在聚合的$ project阶段使用$ add。

db.test.aggregate({ $match: {...your filter here... } },
     { $project : {
             'league' : '$league',
             'total' : {'$add' : [ '$score_one.1', '$score_one.2',... ]}
         }})

MongoPlayground

答案 2 :(得分:0)

您可以通过此链接实现解决方案。This link的答案将指导您如何汇总和从特定数组中获取和。