Couchbaselite Changes返回所有对象,即使只更改了一个文档
我正在开发一个couchbase lite驱动的应用程序,并尝试在couchbase mobile lite上基于此进行实时查询 虽然它有效,但我对报告为已更改的文档的数量感到困惑。这只在我的笔记本电脑中,所以我通过cbimport将json文件上传到couchbase服务器。然后同步网关成功地将所有数据同步到我的android应用程序 现在,我在couchbase server中更改了一个文档,但所有27个文档都在live查询中以更改的形式返回。我只希望我更改的文档会作为上次同步后更改的文档返回 查看每个文档的元信息,我更改的文档有以下内容:Couchbaselite Changes返回所有对象,即使只更改了一个文档,couchbase,couchbase-lite,couchbase-sync-gateway,Couchbase,Couchbase Lite,Couchbase Sync Gateway,我正在开发一个couchbase lite驱动的应用程序,并尝试在couchbase mobile lite上基于此进行实时查询 虽然它有效,但我对报告为已更改的文档的数量感到困惑。这只在我的笔记本电脑中,所以我通过cbimport将json文件上传到couchbase服务器。然后同步网关成功地将所有数据同步到我的android应用程序 现在,我在couchbase server中更改了一个文档,但所有27个文档都在live查询中以更改的形式返回。我只希望我更改的文档会作为上次同步后更改的文档返
{
"meta": {
"id": "Group_2404_159_5053",
"rev": "15-16148876737400000000000002000006",
"expiration": 0,
"flags": 33554438,
"type": "json"
},
"xattrs": {
"_sync": {
"rev": "7-ad618346393fa2490359555e9c889876",
"sequence": 2951,
"recent_sequences": [
2910,
2946,
2947,
2948,
2949,
2950,
2951
],
"history": {
"revs": [
"3-89bb125a9bb1f5e8108a6570ffb31821",
"4-71480618242841447402418fa1831968",
"5-4c4d990af34fa3f53237c3faafa85843",
"1-4fbb4708f69d8a6cda4f9c38a1aa9570",
"6-f43462023f82a12170f31aed879aecb2",
"7-ad618346393fa2490359555e9c889876",
"2-cf80ca212a3279e4fc01ef6ab6084bc9"
],
"parents": [
6,
0,
1,
-1,
2,
4,
3
],
"channels": [
null,
null,
null,
null,
null,
null,
null
]
},
"cas": "0x0000747376881416",
"value_crc32c": "0x8c664755",
"time_saved": "2020-06-01T14:23:30.669338-07:00"
}
}
}
其余26份文件与本文件类似:
{
"meta": {
"id": "Group_2404_159_5087",
"rev": "2-161344efd90c00000000000002000006",
"expiration": 0,
"flags": 33554438,
"type": "json"
},
"xattrs": {
"_sync": {
"rev": "1-577011ccb4ce61c69507ba44985ca038",
"sequence": 2934,
"recent_sequences": [
2934
],
"history": {
"revs": [
"1-577011ccb4ce61c69507ba44985ca038"
],
"parents": [
-1
],
"channels": [
null
]
},
"cas": "0x00000cd9ef441316",
"value_crc32c": "0xc37bb792",
"time_saved": "2020-05-28T11:34:50.3200745-07:00"
}
}
}
这是预期的行为还是我可以做些什么?这是预期的行为。每次数据库更改影响查询结果时,实时查询都会重新运行查询。因此,在您的情况下,因为它是一个获取数据库中所有文档的查询,所以当数据库中的任何文档发生更改时,查询将重新运行,并返回所有文档(这就是查询的目的) 如果查询上有一个筛选器谓词,则最适合实时查询。例如,如果应用程序希望在类型为“foo”的文档中的状态字段发生更改时收到通知。在这种情况下,只有当类型为“foo”的文档中的状态字段发生更改时,才会通知您 在您的情况下,如果您只关心数据库中的任何文档发生更改时的更改,那么您应该只使用