mongodb - Restheart 聚合:使用 $var 发送动态 $match 查询
问题描述
我可以在 avars 中发送 JSON 以动态创建 $match 过滤器查询,如下所示:
{
"type": "pipeline",
"uri": "myaggr",
"stages": [{
"$match": {"$var":"n"}
}......}
我必须通过 JSON 代替 {"$var":"n"}
请告诉我我们在 Restheart 中是否有这个选项......
解决方案
在聚合中定义了 `{"$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找到有关将变量传递给聚合的所有文档
推荐阅读
- linux - 无法运行在 /etc/inittab 中配置的 tview 应用程序
- c# - API错误401未经授权的laravel C Sharp
- form-submit - 如何在提交到网络表单时创建自定义功能
- java - 我的服务在一个类中工作,但在另一个类中返回 null
- node.js - TS2339:“导航器”类型上不存在属性“联系人”
- python - 复制小型networkx图中未通过边连接的节点
- python - 如何计算数据框中每一行去年发生的案例数?
- python - Error when trying access parameters in AWS Python Lambda function using API Gateway
- postman - postman 在哪里输入非表单数据?
- c++ - 如何避免使用此向量进行隐式复制/破坏?