我打算实现的是某种“实时查询”功能。 到目前为止,我已经尝试使用“监视”方法。根据{{3}}:
您可以通过调用以下内容来打开与过滤器匹配的更改流: 以$ match表达式作为参数的collection.watch(delegate :)。 每当监视的集合发生更改且ChangeEvent匹配时 提供的$ match表达式,流的事件处理程序将触发 将ChangeEvent对象作为其唯一参数
将doc id作为数组传递是完美的方法,但是传递查询不起作用:
this.stitch.db.collection<Queue>('queues')
.watch({
hospitalId: this.activehospitalid
}));
我也尝试过:
this.stitch.db.collection<Queue>('queues')
.watch({
$match: {
hospitalId: this.activehospitalid
}
},
));
哪个在控制台上引发错误“ StitchServiceError:mongodb watch:筛选器无效(未知的顶级运算符:$ match)”。目的是监视“ hospitalId”字段与提供的值匹配的所有文档,或者有效地将查询过滤器传递给watch()
方法。
答案 0 :(得分:1)
经过长时间的搜索,我发现可以进行过滤,但是查询的格式需要不同
this.stitch.db.collection<Queue>('queues')
.watch({
$or: [
{
"fullDocument.hospitalId": this.activehospitalid
}
]
},
));
对于可能需要此功能的其他人,请注意查询中重要的 fullDocument 部分。我没有找到很多与此相关的文档,但希望对您有帮助