Mongodb Stitch实时手表

时间:2019-12-06 19:00:52

标签: mongodb mongodb-stitch

我打算实现的是某种“实时查询”功能。 到目前为止,我已经尝试使用“监视”方法。根据{{​​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()方法。

1 个答案:

答案 0 :(得分:1)

经过长时间的搜索,我发现可以进行过滤,但是查询的格式需要不同

this.stitch.db.collection<Queue>('queues')
                        .watch({
                           $or: [
                                 {
                                   "fullDocument.hospitalId": this.activehospitalid
                                 }
                                ]
                            },
                          ));

对于可能需要此功能的其他人,请注意查询中重要的 fullDocument 部分。我没有找到很多与此相关的文档,但希望对您有帮助