問題タブ [couchbase-sync-gateway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
46 参照

javascript - angularjsでのpouchdbリスナーの問題

私はcouchbaseとangularjsでpouchdbを使用しています。

save()、getAllDocs()、delete() などのさまざまなpouchdb関数を持つサービスがあります。また、変更のリッスンを開始するpouchdbのリスナーを定義しました。

私はさまざまなコントローラーを定義しており、すべてのコントローラーで変更のリッスンを開始し、ユーザーがビューを離れると変更のリッスンを停止します。これらのリスナーは、ユーザーのログイン後にのみ開始されます。

そのため、ユーザーが webapp にログインすると、pouchdb はすべてのコントローラーで変更のリッスンを開始します。

ただし、データが大きくなるにつれて、データを表示するためのレイテンシーも増加します。

それで、誰かがこのパフォーマンスの問題を改善するのを手伝ってくれませんか。

ありがとう

0 投票する
2 に答える
341 参照

couchbase - Couchbase Sync Gateway - サーバーおよびクライアント API とバケットのシャドーイング

Couchbase Server と Sync Gateway を使用してバケットの内容を Couchbase Lite を実行している iOS および Android クライアントと同期するプロジェクトに取り組んでいます。また、Node.js サーバー アプリケーションから Couchbase サーバーへの読み取りおよび書き込みアクセスも必要です。私が行った調査によると、シャドウイングの使用は嫌われているため ( https://github.com/couchbase/sync_gateway/wiki/Bucket-Shadowing )、バケットを更新する手段として Sync Gateway API を調べるようになりました。 Node.js アプリケーションから。同期ゲートウェイ API を使用して既存のドキュメントを更新するには、ドキュメントの最新のリビジョン ID を渡す必要があるようで、変更前に別の読み取りが必要です ( http://mobile-couchbase.narkive.com/HT2kvBP0/cblite-sync-ゲートウェイ-カウチベース-サーバー)、これは潜在的に非効率的と思われます。この問題を解決する最善の方法は何ですか?

0 投票する
2 に答える
359 参照

couchbase - Couchbase Sync Gateway クライアントとサーバー側

私はプロジェクトを開始していますが、多くのことを読んだ後、バケツのシャドーイングではなく、モバイルおよびサーバー (バックエンド) アプリからの同期ゲートウェイ REST API 呼び出しを使用する必要があるという結論に達しました。ただし、同期ゲートウェイは、クエリ、特に動的クエリの実行に関しては明らかにかなり面倒です。私の考えは、書き込みに Sync Gateway を使用し、読み取りに NodeJS SDK を使用するバックエンド アプリケーション用の小さなモジュールを作成することです。このようにして、取得/クエリに N1QL、ビューなどを使用することができ (Sync Gateway で厄介なことをする代わりに)、書き込み時にデータが適切に同期されていることを確認できます。

ここで私の考えは間違っていますか?このアプローチの問題を予測できる人はいますか?

0 投票する
1 に答える
405 参照

couchbase - Couchbase マイクロサービス アーキテクチャ

マイクロサービスごとにデータストアを持つことに関する多くの記事を読みました。私はこのアプローチを使用しますが、モバイル アプリとバックエンド サーバー アプリの両方から Sync Gateway REST API 呼び出しを使用したいので、Couchbase Sync Gateway を使用する最善の方法を知りたいです。これを実現する最も簡単な方法は、1 つの Couchbase クラスター (3-n の Couchbase Server インスタンス) におそらく 2 ~ 3 個のバケットを使用することだと考えています。おそらくセッション用のバケット、すべてのデータ用の別のバケット、そして後で別のバケット。各マイクロサービスの「データベース」について、それぞれに異なる物理クラスターを用意するのではなく、すべてのデータを 1 つのバケットに入れ、データベースとテーブルをドキュメント フィールドで区別する必要があると考えています。だから多分私は次のようなものになるでしょう:

また、サービスごとに複数のデータベース エントリがあり、すべてが sync-gateway 構成ファイル内の同じバケットを指しています。次に、バックエンド サーバー アプリケーションが独自のデータベースにアクセスすることのみを許可する ACL または何らかのコントロールを設定する必要があります (したがって、「election-api」サーバーは、対応するプロパティを持つドキュメントのみを読み書きできdatabaseます)。少なくとも書き込みの場合、これはすべて同期ゲートウェイを介する必要があります (代わりに SDK を使用してほとんどの読み取りを行う可能性があります)。

Sync Gateway はまだ少し混乱しており、これが最善のアプローチかどうかはわかりません。チャネルを一種の ACL として使用しますか? これはそもそも悪いアプローチですか?助言がありますか?ありがとう!

0 投票する
1 に答える
50 参照

angularjs - pouchdb を使用してバッチ ドキュメントを作成すると、webapp が遅くなる

私は、pouchdb の bulkSave() 関数を使用してドキュメントを保存しようとしています。ただし、これらのドキュメントが保存されると、同期ゲートウェイを使用して master データベースとの同期が開始され、その際に webapp の速度が低下し、別のタブに移動しようとすると、そのタブにコンテンツが表示されません。

以下は、ドキュメントの作成方法の例です。

前もって感謝します!

0 投票する
1 に答える
269 参照

ios - CouchBase Lite フィルター レプリケーションのシーケンスと順序付け

function(doc, req)ドキュメント タイプをチェックし、レプリケーション ステータスに対して true または false を返すサーバー側フィルター (javascript: ) をセットアップしています。DocumentB をレプリケートするかどうかを決定するために、DocumentA などのドキュメントのコンテンツを確認する必要があるシナリオがあります。docしかし、JavaScript に渡される順序はありません。returnたとえば、DocumentB は DocumentA の前に同期のために到着する可能性があります。この時点では、DocumentA の知識がなければ何をすべきかわかりません。どうすればこれを達成できますか?

0 投票する
1 に答える
65 参照

couchbase-lite - CouchbaseServer へのデータの保存 (メタデータなし)

私はcouchabse lite dbにデータを作成し、それをcouchabse serverに複製しましたが、複製では未使用のデータもサーバーに作成されます。純粋なデータ (メタデータなし) を保存する方法はありますか?

バケツショーはこの問題に役立ちますか?

0 投票する
1 に答える
313 参照

rest - Couchbase のドキュメント作成が sync-gateway public rest API で失敗する

以下の Couchbase Sync-Gateway REST API ドキュメントに従って、cURL は指定されたデータベースにドキュメントを作成する必要があります

以下は、Postman から生成された cURL です。

また、リクエストの本文に JSON を追加してみました。

しかし、Postman を介して put リクエストを送信すると、新しいドキュメントを作成する代わりに、新しいデータベースを作成しようとし、JSON 応答は次のようになります。

何か足りないのでしょうか、それともバグでしたか? ドキュメントを作成してゲートウェイを同期する他の方法はありますか?