問題タブ [rethinkdb-javascript]

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 に答える
174 参照

join - rethinkdb に自己参加

rethinkdb に次のようなテーブル (ツリー構造を実装) があります。

次の出力が得られるクエリを作成したいと思います。

このために、私は次のように書いています。

このクエリは、ルート ノードである行を除くすべての行を返します。また、非常に複雑なシナリオでもこれを行う必要がある可能性があるため、これが最も効率的な方法であるかどうかを知りたいです。

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

rethinkdb - rethinkdb でのクエリの連鎖

「カテゴリ」テーブルがあり、各カテゴリには「データ」テーブルに関連付けられたデータがあり、「関連付けられた」他のテーブルに関連付けられたデータがあり、関連付けられているすべてのデータを含むカテゴリを削除したいとします。私が現在行っていることは、次のようなものです。

これらのクエリをデータベース側でチェーンする方法はありますか? 私の関数は現在次のようになっています:

前のクエリの結果に基づいてクエリを実行したいので、r.expr() または r.do() を使用できないことに注意してください。私のアプローチの問題は、すべての ID をクライアント側に持ってくる必要があるため、大量の「データ」に対しては機能しないことです。ループ内のクライアント側でページングを行うことは回避策のようです。

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

rethinkdb - RethinkDB を使用して、押しつぶされた changefeed イベントからの配列を取得します

メッセージを挿入する単純なデータベースがあります。squash オプションを指定した change() メソッドを使用して、10 秒ごとに新しいメッセージを取得します。

10 秒ごとに新しいメッセージの新しい配列を取得したいと考えています。このカーソルの出力が無限であることはわかっています。
より多くの要素が利用可能になるまでカーソルがブロックされる瞬間を検出して配列を取得する方法はありますか? (または他の方法)

ありがとう

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

rethinkdb - RethinkDB: 配列のリアルタイム変更、新しく追加されたもののみを返す

概要: RethinkDB の変更フィードを使用して、(テーブル全体ではなく) 特定のドキュメントの変更を監視しています。各レコードは次のようになります。

フィードバック配列にアイテムを追加するプロセスが1つあり、フィードバック配列の変更を監視する必要がある別のプロセスがあります...そして何かを行います(具体的には、フィードバックに最後に追加されたアイテムのみをwebsockets経由でブロードキャストします)。ドキュメント全体の更新を監視するように配線しましたが、完全なドキュメントを受信して​​から、フィードバック配列の最後の項目だけを取得する必要があります。戻す必要があるのは最後に追加されたものだけである場合、これは過度に重く感じます。

ドキュメントの更新に使用される現在のコード:

^ これは 1 分程度の間に数回実行され、最新のメッセージが「フィードバック」に追加されます。

変更の監視:


最後に、ここに質問があります (実際には 2 つの部分):

1:ドキュメントを更新updateする (フィードバックに追加する) とき、 (上記のコードのように) ドキュメント全体に対して を実行する必要がありますか? それとも、単にフィードバック配列に追加するだけで完了できますか?

2: 上記の方法 (ドキュメント全体を受け取り、フィードバック配列から最後の要素を取り出す) が唯一の方法ですか? または、次のようなことができますか:

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

database - RethinkDB データベースで顧客を分離する

データ分離を使用して顧客間で共有 RethinkDB クラスターを実装する戦略を探しています。

複数の顧客に共有 RethinkDB クラスターを使用してもらいたいのですが、データの分離を強制する方法がわかりません。顧客の要求は信頼されるべきではありませんが、RethinkDB API を使用して、自分のデータに完全にアクセスできる必要があります。

マルチテナント データベースの典型的なケースのように見えますが (よくわかりません)、とにかく RethinkDB でそれを行う方法について十分な情報を見つけることができませんでした。

別のアイデア: ラッパーを作成し、すべてのテーブルに customerID のプレフィックスを付けることもできますが、それをバイパスすることはできますか? r.db('customerID')クエリの残りの部分で変更できないようなことをする方法はありますか? それは特定のドライバーに依存しますか?

RethinkDB で顧客を分離するにはどうすればよいですか?

注:問題が発生した場合に備えてhttps://github.com/apa512/clj-rethinkdbを使用する予定ですが、JavaScript を使用した回答も受け付けます。

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

rethinkdb - DB クロス クラスタ レプリケーションを再考する

3 つの異なる地理的な場所に 3 つの異なるクライアント プールがあります。

3 つの異なるクラスターで Rethinkdb を構成し、(挿入、更新、および削除) 間でデータをレプリケートする必要があります。シャードは使用せず、レプリケーションのみを使用します。

これが可能かどうかは、ドキュメントで見つかりませんでした。

マルチクラスターレプリケーションを構成する方法がドキュメントにありませんでした。

どんな助けでも大歓迎です。

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

rethinkdb - Rethinkdb を使用したマルチデータセンター レプリケーション

地理的に異なる 2 つの場所 (alfa1 と alfa2) に 2 つのサーバーがあります。

r.tableCreate('dados', {shards:1, replicas:{alfa1:1, alfa2:1}, primaryReplicaTag:'alfa1'})

両方のサーバーに書き込みできる必要がありますが、alfa1 をシャットダウンして alfa2 に書き込もうとすると、rethinkdb は読み取りのみを許可します。テーブル test.dados は古い読み取りには使用できますが、最新の読み取りまたは書き込みには使用できません。

プライマリだけでなく、すべてのレプリカを書き込む方法が必要です。

これは可能ですか?rethinkdb はマルチデータセンターのレプリケーションを許可しますか?

マルチデータセンターのレプリケーションでは、両方のデータセンターへの書き込みを許可する必要があると思います。

「primaryReplicaTag」を削除しようとしましたが、システムが受け入れません!

どんな助けでも大歓迎です!!!

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

rethinkdb - rethinkdb プロキシ サーバーのセットアップ方法

2 台のクライアント マシンがありますが、プロキシ サーバーを使用して両方を接続するにはどうすればよいですか? 前に言ったように、「クライアントで RethinkDB プロキシを開始するには: rethinkdb proxy -j -j ...」 ポートが既に使用されているため、この方法で接続できるのはクライアントのみです。