問題タブ [couchbase-view]

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 投票する
1 に答える
205 参照

couchbase - バケット間の Couchbase ビューの共有

私たちは、全員が独自のバケツを持っている開発者のグループですが、同じビューを持っています。

ソース管理下でビューが定義された 1 つのファイルが必要です。

このファイルは、このバケットのビューが更新されるように、既存のバケットに簡単に適用できます。

どうすれば簡単に達成できますか?

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

couchbase - Couchbase Viewがすぐに更新されませんか?

この投稿に従って、 Couchbaseビューをテストします。ビューを編集するときにCouchbase GUIを使用して保存すると、ビューがすぐに更新されませんでした。

たとえば、phpスクリプトを使用して、いくつかの配列をCouchbaseに格納し、「dev_sessions」ドキュメントで名前付きの「最後の」ビューを定義します。

次に、curlを使用してjsonの結果を取得します。初めて:

2番:

別のテストでは、phpスクリプトに新しい配列を追加します。

初めてcurlを実行します。

2回目:

データを変更したり、スクリプトを表示したりする場合はViews - 'Show Results'、CouchbaseGUIのボタンをクリックしてください。1回目と2回目は異なります。ビューがすぐに更新されないのはなぜですか?

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

performance - バケットあたりのcouchbaseビューの最大数

バケット内の大量のデータ (>100GB、>100M ドキュメント、>12 ドキュメント タイプ) を想定し、各ビューが 1 つのドキュメント タイプのみに適用されると仮定すると、バケットあたりのビューの数は多すぎますか? または別の言い方をすれば、すべてのドキュメント タイプのすべてのビューを処理するオーバーヘッドを節約するために、一部のドキュメント タイプを個別のバケットに分割する必要があるのはどの時点ですか?

データをソファベース バケットに分割する方法と、データに必要なビューのパフォーマンスへの影響を決定するのに苦労しています。私のデータは 12 を超えるリレーショナル DB で構成されており、少なくともその半分は多数のテーブルに数億行あります。

http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-bestpractice.html doc セクションの「ドキュメント タイプの使用」は、同じバケットに複数のドキュメント タイプを持つことは理想的ではないことを暗示しているようです。特定のドキュメント タイプのビューは、ビューに決して一致しないものも含め、すべてのドキュメントに対して更新されます。実際、このオーバーヘッドを回避するために、データをバケットに分割することを提案しています。

ただし、パフォーマンス上の理由から、クラスターあたり 10 バケットの制限があります。したがって、私の唯一の結論は、各クラスターが最大 10 個の大規模なドキュメントのコレクションを効率的に処理できるということです。これは正確ですか?

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

couchbase - Couchbaseビューのローカルテスト

私はCouchbaseビューを開発していますが、出力行が切り捨てられ、JavaScriptエラーが表示されないため、コンソールの使用が制限されています。Node.jsのようなエンジンを使用してローカルでビューをテストする便利な方法はありますか?

ありがとう!

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

nosql - ソファベースの複合ビュー

私はCouchbaseを初めて使用し、複合インデックスを取得して目的を達成するのに苦労しています。ユースケースは次のとおりです。

  • ドキュメントとして保存されている一連の「列挙」があります
  • それぞれに「last_updated」フィールドがあり、ご想像のとおり、フィールドが最後に更新された時刻が格納されます
  • 特定の日付以降に更新された列挙のみを表示できるようにしたいが、それでも列挙の名前でリストをソートしたい

次のような Couchbase ビューを作成しました。

}

last_updated フィールドが設定されていないため、時間フィールドがすべてゼロに設定されているレコードが 1 つあります。最初のテストとして、その結果を除外できると考え、次のように入力しました。

リストは「id」でソートされていますが、何もフィルタリングしていません! 誰が私が間違っているのか教えてもらえますか? これらの結果を達成するためのより良い複合ビューはありますか?

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

mapreduce - Couchbase でのクエリの制限を克服する

最近、リレーショナル (MySQL) から NoSQL (couchbase) に移行しました。基本的にはソーシャル モバイル ゲームのバックエンドです。増加するユーザー数に対応するためにバックエンドをスケーリングする際に、多くの問題に直面していました。MySQL のロードを使用すると、複数のテーブル間に多くの結合があったため、ユーザーは多くの時間を要しました。データのほとんどが単一のドキュメントに保持されるため、特にデータをロードするときにcouchbaseに移行した後、大幅な改善が見られました.

欠点としては、クエリに関する限り、couchbase にも多くの制限があるようです。SQLクエリに代わるCouchbaseはビューです。map-reduce を使用してほとんどのクエリを処理することができましたが、時間ベースのクエリを処理する方法を理解するのに本当に苦労しています。たとえば、タイムスタンプ属性に基づいてユーザーをフィルタリングする必要があります。時間が現在の時間よりも短い場合にのみ、ユーザーを表示する必要があります。

ユーザーの時間が未来の時間に設定されると、このビューから除外されます。これは望ましい動作ですが、更新しない限り、ビューに再び追加されることはありません。更新しました。

現時点での解決策は、最初に x 個のユーザー ドキュメントを読み込み、次にアプリケーションで時間を確認することです。並べ替えは user.time 属性で行われるため、時間が現在の時間よりも短い、または近いユーザーが取得されます。しかし、これが実際にライブ環境で機能するかどうかはわかりません。理想的には、アプリケーション レベルでこの種のチェックを回避したいと考えています。

また、マッチメイキングなど、複数の時間ベースの属性をチェックする必要がある場合もあります。私たちの現在の戦略はそのような場合には機能せず、アプリケーションで行われたときにこれらのチェックに合格しないビューからドキュメントを取得することがよくあります。すでに同様の問題に取り組んでいる人が経験を共有できれば、本当にありがたいです。前もって感謝します。

アップデート:

1 つのキーに対してのみ機能する範囲クエリを使用してみました。私が言ったように、ほとんどの場合、機能しない複数の範囲を意味する複数の時間ベースのキーがあります。

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

nosql - 異なるキーを持つ Couchbase 動的ビュー

Couchbase に問題があります。

クエリが作成されるキーを前もって知りません。Couchbase が私に提供してくれるソリューションは何ですか。

私は数億のオーダーの大きなデータセットを持っていることに注意してください。

編集:保存されたコレクションでマッチメイキングを行いたいのですが、基準が事前にわからないか、ランダムに設定されています。つまり、コンパイル時にビューを設定する必要があります。私のオプションは何ですか?