【问题标题】:Mongodb Stitch realtime watchMongodb Stitch 实时手表
【发布时间】:2020-01-08 19:02:37
【问题描述】:

我打算实现的是某种“实时查询”功能。 到目前为止,我已经尝试过使用“watch”方法。根据documentation

您可以通过调用打开匹配过滤器的更改流 collection.watch(delegate:) 以 $match 表达式作为参数。 每当观察到的集合发生变化并且 ChangeEvent 匹配时 提供的 $match 表达式,流的事件处理程序触发 ChangeEvent 对象作为其唯一参数

将文档 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: filter is invalid (unknown top level operator: $match)”。目的是查看字段“hospitalId”与提供的值匹配的所有文档,或者有效地将查询过滤器传递给watch() 方法。

【问题讨论】:

  • 你使用什么语言/sdk?
  • 这是在一个 Angular 应用程序上的打字稿

标签: mongodb mongodb-stitch


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2020-08-29
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 2021-09-05
    • 2018-08-15
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多