Перезапустите агрегаты: отправьте динамический запрос $ match, используя $ var - PullRequest
0 голосов
/ 20 мая 2019

Могу ли я отправить JSON в аварах для динамического создания запроса фильтра $ match, как показано ниже:

    {
        "type": "pipeline",
        "uri": "myaggr",
        "stages": [{
                "$match": {"$var":"n"}
            }......}

Мне нужно передать JSON вместо {"$ var": "n"}

скажите, пожалуйста, есть ли у нас эта опция в Restheart или нет ...

1 Ответ

2 голосов
/ 22 мая 2019

Определив `{" $ 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

...