使用 RestHeart 创建多个聚合
Creating multiple aggregations using RestHeart
我正在使用 RestHeart 对 MOngoDB 聚合进行 REST 调用 queries.I 我正在尝试一次创建多个聚合 activity 然后在以后需要时执行它们。
目前我看到一次只创建一个聚合。如果我创建一个新的,它就会被覆盖。
是否可以使用不同的 URI 一次性创建多个聚合activity?
这样,我可以稍后调用 URI,而不必每次都重写聚合查询。
RESTHeart 允许通过 aggrs 集合 属性 定义聚合。请参阅此处的文档 https://softinstigate.atlassian.net/wiki/x/AwDw
aggrs 是聚合定义的数组,类似于:
aggrs: [ { <aggregation_1> }, { <aggregation_2> }, ... ]
聚合定义为:
{
"type":"pipeline",
"uri": <uri>,
"stages": [
"<stage_1>",
"<stage_2>",
...
]
}
每个聚合绑定到定义中指定的uri,在/db/coll/_aggrs
下,所以:
GET /db/coll/_aggrs/aggreation1
GET /db/coll/_aggrs/aggreation2
你说你的聚合被覆盖了,我怀疑你正在更新你的集合来替换 aggrs 数组。确保使用 aggrs 数组
中的所有聚合定义更新集合属性
所以要使用出色的 httpie cli 工具创建第一个聚合
http PATCH <ip>/db/coll aggrs:='[ {<aggregation_1>} ]'
要创建第二个聚合,您可以传递整个 aggrs 数组:
http PATCH <ip>/db/coll aggrs:='[ {<aggregation_1>}, {<aggregation_2>} ]'
或使用 $addToSet 更新运算符
将第二个添加到 aggrs 数组
http PATCH <ip>/db/coll aggrs:='{"$addToSet": {"aggrs": {<aggregation_2>}}}'
我正在使用 RestHeart 对 MOngoDB 聚合进行 REST 调用 queries.I 我正在尝试一次创建多个聚合 activity 然后在以后需要时执行它们。 目前我看到一次只创建一个聚合。如果我创建一个新的,它就会被覆盖。
是否可以使用不同的 URI 一次性创建多个聚合activity?
这样,我可以稍后调用 URI,而不必每次都重写聚合查询。
RESTHeart 允许通过 aggrs 集合 属性 定义聚合。请参阅此处的文档 https://softinstigate.atlassian.net/wiki/x/AwDw
aggrs 是聚合定义的数组,类似于:
aggrs: [ { <aggregation_1> }, { <aggregation_2> }, ... ]
聚合定义为:
{
"type":"pipeline",
"uri": <uri>,
"stages": [
"<stage_1>",
"<stage_2>",
...
]
}
每个聚合绑定到定义中指定的uri,在/db/coll/_aggrs
下,所以:
GET /db/coll/_aggrs/aggreation1
GET /db/coll/_aggrs/aggreation2
你说你的聚合被覆盖了,我怀疑你正在更新你的集合来替换 aggrs 数组。确保使用 aggrs 数组
中的所有聚合定义更新集合属性所以要使用出色的 httpie cli 工具创建第一个聚合
http PATCH <ip>/db/coll aggrs:='[ {<aggregation_1>} ]'
要创建第二个聚合,您可以传递整个 aggrs 数组:
http PATCH <ip>/db/coll aggrs:='[ {<aggregation_1>}, {<aggregation_2>} ]'
或使用 $addToSet 更新运算符
将第二个添加到 aggrs 数组 http PATCH <ip>/db/coll aggrs:='{"$addToSet": {"aggrs": {<aggregation_2>}}}'