Mongodb Stitch 实时观看
Mongodb Stitch realtime watch
我打算实现的是某种 "live query" 功能。
到目前为止,我已经尝试使用 "watch" 方法。根据 documentation:
You can open a stream of changes that match a filter by calling
collection.watch(delegate:) with a $match expression as the argument.
Whenever the watched collection changes and the ChangeEvent matches
the provided $match expression, the stream’s event handler fires with
the ChangeEvent object as its only argument
将文档 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()
方法。
经过长时间的搜索,我发现可以过滤,但查询需要不同的格式
this.stitch.db.collection<Queue>('queues')
.watch({
$or: [
{
"fullDocument.hospitalId": this.activehospitalid
}
]
},
));
对于可能需要此信息的任何其他人,请注意查询中重要的 fullDocument 部分。我还没有找到很多与此相关的文档,但我希望它能有所帮助
我打算实现的是某种 "live query" 功能。 到目前为止,我已经尝试使用 "watch" 方法。根据 documentation:
You can open a stream of changes that match a filter by calling collection.watch(delegate:) with a $match expression as the argument. Whenever the watched collection changes and the ChangeEvent matches the provided $match expression, the stream’s event handler fires with the ChangeEvent object as its only argument
将文档 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()
方法。
经过长时间的搜索,我发现可以过滤,但查询需要不同的格式
this.stitch.db.collection<Queue>('queues')
.watch({
$or: [
{
"fullDocument.hospitalId": this.activehospitalid
}
]
},
));
对于可能需要此信息的任何其他人,请注意查询中重要的 fullDocument 部分。我还没有找到很多与此相关的文档,但我希望它能有所帮助