Выражение $ match в приложении stitch mongodb не работает должным образом.
Я пытаюсь настроить простой триггер обновления, который будет работать только с одним полем в коллекции.
Настройка триггера обеспечивает агрегацию $ match, которая кажется достаточно простой для настройки.
Например, если я хочу, чтобы триггер срабатывал только тогда, когда поле "онлайн" в указанной коллекции установлено на "true", я бы сделал:
{"updateDescription.updatedFields":{"online":"true"}}
, что для триггера стежка такое же, как:
{$match:{{updateDescription.updatedFields:{online:"true"}}}
Проблема заключается в том, когда я пытаюсь сопоставитьобновить поле, являющееся объектом. (например, hours:{online:40,offline:120}
По какой-то причине $ существует или $ in не работает. Таким образом:
{"updateDescription.updatedFields":{"hours":{"$exists":true}}
не работает, и не делает что-то вроде:
{"updateDescription.updatedFields":{"hours.online":{"$exists":true}}
Предполагается, что триггер $ match для триггера работает точно так же, как обычный $ mongo-матч. Они просто предоставляют один пример:
{
"updateDescription.updatedFields": {
"status": "blocked"
}
}
Пример отсюда: https://docs.mongodb.com/stitch/triggers/database-triggers/
Я испробовал 100 вариантовно я не могу его получить
Триггер работает нормально, если совпадение имеет определенное значение, например:
{"updateDescription.updatedFields":{"hours.online":{"$numberInt\":"20"}}
, а затем я устанавливаючасов.онлайн до 20 в базе данных.