首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RestHeart创建多个聚合

使用RestHeart创建多个聚合
EN

Stack Overflow用户
提问于 2017-05-23 14:21:13
回答 1查看 252关注 0票数 0

我使用RestHeart对MOngoDB聚合查询进行REST调用,我尝试创建多个聚合作为一次活动,然后在以后需要时执行它们。目前,我看到一次只创建一个聚合。如果我创建了一个新的,那么它就会被覆盖。

是否可以使用不同的URI作为一次活动创建多个聚合?

这样,我可以稍后调用URI,而不必每次都重写聚合查询。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-24 07:41:03

RESTHeart允许通过aggrs集合属性定义聚合。请参阅这里的文档,https://softinstigate.atlassian.net/wiki/x/AwDw

aggrs是一组聚合定义,类似于:

代码语言:javascript
复制
aggrs: [ { <aggregation_1> }, { <aggregation_2> }, ... ]

聚合定义是:

代码语言:javascript
复制
{
   "type":"pipeline",
   "uri": <uri>,
       "stages": [
       "<stage_1>",
       "<stage_2>",
       ...
   ]
}

每个聚合都绑定到定义中在/db/coll/_aggrs下指定的uri,因此:

代码语言:javascript
复制
GET /db/coll/_aggrs/aggreation1
GET /db/coll/_aggrs/aggreation2

如果您说您的聚合会被覆盖,我怀疑您正在更新您的集合以取代aggrs数组。确保使用aggrs数组中的所有聚合定义更新集合属性。

因此,要使用出色的海蒂派 cli工具创建第一次聚合

代码语言:javascript
复制
http PATCH <ip>/db/coll aggrs:='[ {<aggregation_1>} ]'

要创建第二个聚合,可以传递整个aggrs数组:

代码语言:javascript
复制
 http PATCH <ip>/db/coll aggrs:='[ {<aggregation_1>}, {<aggregation_2>} ]'

或者使用$addToSet update操作符向aggrs数组添加第二个

代码语言:javascript
复制
 http PATCH <ip>/db/coll aggrs:='{"$addToSet": {"aggrs": {<aggregation_2>}}}'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44137449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档