問題タブ [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.

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

python - JSON API に従来の SQL ではなく RethinkDB を選択することはどの程度適していますか?

Web アプリのバックエンドを構築しています。フロントエンドの API として機能し、Python (正確には Flask) で記述されます。

設計と実装に関していくつかの決定を行った後、データベースの部分に取りかかりました。そして、NoSQL データ ストレージが従来の SQL データベースよりも私のプロジェクトに適しているのではないかと考え始めました。以下は、データベースによって処理される必要がある基本的な機能の説明であり、次に、どのタイプのストレージを選択する必要があるかに関して考えられる長所と短所のリストです。最後に、他の NoSQL データ ストレージではなく RethinkDB を検討した理由について説明します。

API の基本機能

ArtistAPI は、 、SongSuggestionUserおよびの少数のモデルのみで構成されていますUserArtists

Userいくつかの関連データを含む を追加し、いくつかの をそれにリンクできるようにしたいと考えArtistています。Songリクエストに応じて s にs を追加し、 anと aを含むa の aArtistも生成したいと思います。SuggestionUserArtistSong

おそらく、最も重要な部分の 1 つは、Artists が定期的にUsers にリンクされることです (また、 s が何らかの基準を満たさない場合はArtist、システムから (したがって s からも) 削除される可能性があります)。s も s に動的に追加されます。これが意味するのは、s が s の固定セットを持っておらず、s も s の固定セットを持っていないということです。それらは継続的に更新されます。UserSongArtistUserArtistArtistSong

長所

NoSQL の場合:

  • Artistすべての人が FacebookID やSongSoundcloudIDを持っているわけではないため、柔軟なスキーマ。
  • JSON API ですが、レコードが JSON として保存されるという事実から恩恵を受けると思います。
  • sの数は多いと思いますSongが、特にSuggestions はかなり増えるので、ここでは NoSQL の方がうまく機能します。

SQL の場合:

  • 固定されたスキーマは、モデル間の関係に役立つ場合があります。
  • Flask は、モデルの定義に非常に役立つ SQLAlchemy をサポートしています。

短所

NoSQL の場合:

  • リレーションは実装が難しく、トランザクションのようなモデルの更新には少しコードが必要です。
  • Flask には処理を容易にするためのラッパーやモジュールがありません。そのため、データベース操作中にコードを読みやすくするために、ある種のラッパーを実装する必要があります。
  • 記録をどのように保存すればよいか、UserArtist特に

SQL の場合:

  • 操作はかさばります。スキーマを定義し、列にデフォルトがあるかどうかを確認し、デフォルトを割り当て、データを検証し、トランザクションを開始/コミットする必要があります。API のような単純なものには面倒すぎると思います。

DB を再考する理由

次の理由から、API の NoSQL の実装の可能性として RehinkDB を検討しました。

  • 他のソリューションよりもシンプルで軽量に見えます。
  • 大きな利点であるネイティブ Python サポートがあります。
  • テーブルの結合や、モデル間にいくつかの関係がある API で役立つ可能性のあるその他の機能を実装しています。
  • それはかなり新しいもので、コミュニティから多くの影響と愛が見られます。また、データベースの相互作用を活用する新しいものを継続的に追加するという意志もあります。

これらすべてを考慮して、NoSQL と SQL のどちらが私のニーズにより適しているかについてのアドバイス、および 2 つのその他の賛否両論、そしてもちろん、私が述べていないことのいくつかの修正について、喜んでお聞きします。ちゃんと。

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

javascript - ID の配列でテーブルを結合する方法

この例を使用して ID の配列に参加しようとしています: https://github.com/rethinkdb/rethinkdb/issues/1533#issuecomment-26112118

テーブルのスニペットを保存します

場所の表のスニペット

店舗を選択して、その店舗の場所に参加したいと思います。

ReThinkDB 寄稿者からの元の例:

私のJSへの変換の試み

結果

RqlRuntimeError: Expected type ARRAY but found STRING

0 投票する
3 に答える
1207 参照

rethinkdb - RethinkDB: 任意のフィールドに文字列を含むすべてのドキュメントを取得する

任意のフィールドに特定の文字列を含むすべてのドキュメントを返すクエリを実行したいと考えています。たとえば、「users」テーブルがあり、「john」を含むすべてのドキュメントを探しているとします。返される結果は次のようになります。

[{"first_name": "jhon", "last_name": "watson"}, {"first_name": "elton", "last_name": "john"}, {"first_name": "sherlock", "last_name": "holmes", "best_friend": "john watson"}]

rethinkdb でそれを行うにはどうすればよいですか? JavaScriptの回答で十分です。Pythonの実装の方が優れています。

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

database-performance - RethinkDB: カテゴリごとにランダムなドキュメントを取得する

のテーブルがあります~8000 quiz questions。それらはに分かれてい25 categoriesます。各カテゴリには、クイズを生成するmax_questionsために選択する必要がある質問の数を示す属性があります。randomly

例えば

私は解決策を思いつきましたが、私は約かかります。実行するのに 2 秒。

RethinkDB を使用して質問をすばやく取得する方法はありますか? 1 つのクイズで 25 回のリクエストと 25 回の呼び出し.sample()は、私にはよく聞こえません。

あなたの助けに本当に感謝します!