mongodb 的缝合应用程序上的 $match 表达式无法正常工作。
我正在尝试设置一个简单的更新触发器,该触发器仅适用于集合中的一个字段。
触发器设置提供了一个 $match 聚合,设置起来似乎很简单。
例如,如果我希望触发器仅在指定集合中的“在线”字段设置为“真”时触发,我会这样做:
{"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。