問題タブ [rethinkdb]
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.
rethinkdb - rethinkdb で複合マルチインデックスを作成するにはどうすればよいですか?
公式のpythonドライバーでRethinkdb 1.10.1を使用しています。1人のユーザーに関連付けられているタグ付けされたもののテーブルがあります:
user_id
andでクエリを実行したいtag
(たとえば、ユーザー "tawmas" でタグ "tag" を持つすべてのものを検索する)。Rethinkdb 1.10 から、次のようなマルチインデックスを作成できます。
私のクエリは次のようになります。
ただし、このクエリでも、指定されたタグを持つすべてのドキュメントをスキャンする必要があるため、user_id フィールドと tags フィールドに基づいて複合インデックスを作成したいと考えています。このようなインデックスを使用すると、次のクエリを実行できます。
複合マルチインデックスに関するドキュメントには何もありません。["USER_PK", "tag"]
ただし、ペアのリストを返すことにより、複合インデックスとマルチインデックスの要件を組み合わせたカスタム インデックス関数を使用しようとしました。
私の最初の試みはpythonでした:
MemoryError
これにより、インデックス関数を解析しようとしてPythonドライバーがチョークします(リスト内包表記はドライバーで実際にはサポートされていないと思います)。
だから、私は(確かに、さびた)javascriptに目を向け、これを思いついた:
これはサーバーによって拒否され、興味深い例外があります。rethinkdb.errors.RqlRuntimeError: Could not prove function deterministic. Index functions must be deterministic.
では、複合マルチインデックスを定義する正しい方法は何ですか? それとも、現時点ではサポートされていないものですか?
bigdata - RethinkDB は大規模なデータ セット (TB+) を処理し、OLAP アプリの DB として機能できますか?
RethinkDB は、大規模なデータ セット (つまり、数テラ バイト) を効果的に処理して、分析アプリケーションの DB として機能できますか?
node.js - RethinkDB: カーソルからレコードを 1 つだけ取得する
セカンダリ インデックスを使用してカーソルから 1 つのレコードのみを取得する方法は?
レコードを 1 つだけ取得するにはどうすればよいですか?
ruby - 単一のリクエストで RethinkDB の複数のクエリ
サーバーへの単一のリクエストでいくつかのRQLコマンドを実行しようとしていますが、あまり成功していません。を試しr.union
ましたが、シーケンスでしか機能しません。私が本当に欲しいもの:
これを行う方法はありますか?
ありがとう!
javascript - rqlはキーのリストから複数のドキュメントを取得しますrethinkdb in javascript
一意のキー「id」を持つ「人」データのテーブルがあります。クライアントからサーバーに JSON 配列として送信するデータを取得する ID のリストがあります。サーバーはそのデータを JSON 配列として受け取ります。
これらの ID ごとにドキュメントを取得するクエリを実行する方法はありますか?
または、自分でIDを解析して結果の配列を作成し、その配列を送り返す唯一のオプションです。
今まで使ってみた...
getAll - しかし、動的な量のパラメーターを受け入れるため、これを機能させることができず、値の配列を動的な量のパラメーターに変更する方法がわかりません。
(例... 以下のようなことができるようになりたいのですが、できません)
これしかできない…
/li>expr と forEach - 以下に示すように、これはうまくいかないと思います。
/li>
python - Rethinkdb pythonは空の結果を処理します
空の結果を処理するための rethinkb と python の最良の手法は何ですか。これを試してみましたが、例外をキャッチするだけでは不十分です。
誰かが他のテクニックを試したことがあるなら、私は非常に興味があります. ご協力いただきありがとうございます。
rethinkdb - rethinkdb クエリで置換/更新を書き込まない
私はrethinkdbが初めてで、簡単な問題があります。次のオブジェクト構造があるとします。
したがって、「A」のインスタンスは、2 つの「B」インスタンスとの関係を維持します。
次の応答を取得するには、rethinkdb でどのクエリを実行する必要がありますか?
応答で ID の代わりに B のインスタンスを表示したいのですが、この変更を保存したくありません。
javascript - RethinkDB: キーと値のペアでドキュメントを取得しますか?
Node に安定した Mongo ドライバーがないため、Mongo の代替として RethinkDB を評価しています。http://www.rethinkdb.com/api/javascript/get_all/のドキュメントを読み、非常に簡単な質問があります: キーと値のペアでドキュメントを取得するにはどうすればよいですか?
get() の例では、インデックスについてのみ説明しています。私はインデックスには興味がありませんが、他の分野に興味があります。たとえば、次のことができるようになりたいです。
... Mongo で collection.find() に慣れているのとほぼ同じ方法です。しかし、それは不可能のようです。私は何を間違っていますか?この方法でドキュメントを取得することは取得とは見なされませんか?
代わりに.filter()を使用する必要がありますか?
javascript - RethinkDB: 条件付き upsert (特定のフィールドが一致した場合のみ)?
rethinkDB の insert()に upsert オプションがあることは知っています。たとえば、ドキュメントから:
しかし、間違った、または古いスーパーパワーを持つ の既存のレコードが存在する可能性があり、既存のレコードを挿入または更新{superhero: 'Iron Man'}
したいとしますか?{ superhero: 'Iron Man', superpower: 'Arc Reactor' }
{superhero: 'Iron Man'}
要するに、特定のフィールドが一致した場合にのみ既存のレコードが更新されるようにするには、どうすればアップサートできますか?
編集:これは .replace() で行われるようです:
replace() ドキュメントの重要な部分は次のとおりです。
テーブルにないキーでポイント置換を行うと、新しいドキュメントを挿入できます
「ポイント置換」が何を意味するのかはわかりませんが、単に置換を意味すると思います。
ただし、テストでは、「mergeOrCreate」関数には、実際のドキュメントやカーソルではなく、別の関数が引数として与えられています。