mongodb のステッチ アプリケーションの $match 式が正しく機能しません。
コレクション内の 1 つのフィールドでのみ機能する単純な更新トリガーを設定しようとしています。
トリガーのセットアップは $match アグリゲーションを提供しますが、これはセットアップが簡単に見えます。
たとえば、指定したコレクションの「online」フィールドが「true」に設定されたときにのみトリガーを起動する場合は、次のようにします。
{"updateDescription.updatedFields":{"online":"true"}}
ステッチトリガーの場合は次と同じです:
{$match:{{updateDescription.updatedFields:{online:"true"}}}
問題は、オブジェクトであるフィールドの更新を照合しようとするときです。(たとえばhours:{online:40,offline:120}
何らかの理由で $exists または $in が機能しない
{"updateDescription.updatedFields":{"hours":{"$exists":true}}
機能しません。次のようなこともありません。
{"updateDescription.updatedFields":{"hours.online":{"$exists":true}}
トリガーの $match は、通常の mongo $match とまったく同じように機能するはずです。彼らはただ一例を提供します:
{
"updateDescription.updatedFields": {
"status": "blocked"
}
}
例はここからです: https://docs.mongodb.com/stitch/triggers/database-triggers/
100通りのバリエーションを試しましたが、うまくいきません
一致が次のような特定の値である場合、トリガーは正常に機能しています。
{"updateDescription.updatedFields":{"hours.online":{"$numberInt\":"20"}}
次に、データベースでhours.onlineを20に設定しました。