はい、N1QL を使用して同期ゲートウェイをクエリすることは可能です。リビジョンのメタデータが破損するため、変更 (更新/削除/挿入) することはできません。
で始まる ID を持つドキュメントと、内部メタデータを含む各ドキュメント_sync:
のプロパティを無視する必要があります。_sync
残りの属性は通常のドキュメントです。
例:
select db.* from db where meta().id not like '_sync:%'
結果:
[
{
"_sync": {
"history": {
"channels": [
null,
null
],
"parents": [
-1,
0
],
"revs": [
"1-b7a15ec4afbb8c4d95e2e897d0ec0a2e",
"2-919b17d3f418100df7298a12ef2a84bb"
]
},
"recent_sequences": [
6,
7
],
"rev": "2-919b17d3f418100df7298a12ef2a84bb",
"sequence": 7,
"time_saved": "2016-05-04T18:54:26.952202911Z"
},
"name": "Document with two revisions"
}
]
_sync
属性を無視する:
select name from db where meta().id not like '_sync:%'
結果:
[
{
"name": "Document with two revisions"
}
]
Couchbase 4.5 (今日のベータ版) では、object_remove関数を使用できます。
select object_remove(db, '_sync') from db where meta().id not like '_sync:%'
結果:
[
{
"$1": {
"name": "Document with two revisions"
}
}
]
現在の設定はわかりませんが、データの変更に REST API を使用している間、N1QL を介してバケットをクエリし続けることはまったく問題ありません。