我可以在avars中发送JSON来动态创建$ match过滤器查询,如下所示:
{
"type": "pipeline",
"uri": "myaggr",
"stages": [{
"$match": {"$var":"n"}
}......}
我必须通过JSON代替{“ $ var”:“ n”}
请告诉我在Restheart中是否有此选项...
答案 0 :(得分:2)
在聚合中定义了`{“ $ var”:“ n”}后,您可以通过查询参数传递变量
GET /db/coll/_aggrs/myaggr?n={"all":{"the":{"json":"you want"}}}
但是,为了避免查询注入,除非通过在配置文件中设置以下选项明确允许,否则无法通过聚合变量传递MongoDB运算符:
### Security
# Check if aggregation variables use operators. allowing operators in aggregation variables
# is risky. requester can inject operators modifying the query
aggregation-check-operators: true
您可以在https://restheart.org/learn/aggregations/#passing-variables-to-aggregation-operations
中找到有关将变量传递给聚合的所有文档。