Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Couchbaselite Changes返回所有对象,即使只更改了一个文档_Couchbase_Couchbase Lite_Couchbase Sync Gateway - Fatal编程技术网

Couchbaselite Changes返回所有对象,即使只更改了一个文档

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查询中以更改的形式返回。我只希望我更改的文档会作为上次同步后更改的文档返

我正在开发一个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”的文档中的状态字段发生更改时,才会通知您

在您的情况下,如果您只关心数据库中的任何文档发生更改时的更改,那么您应该只使用