私は平らな文書を格納するために1つのDBを使用し、添付ファイルだけを格納するためにもう1つのDBを使用しています。しかし、私は平文のDBに添付IDを保存しています。どのようにRDBMSのような2つのデータベースを結合操作を実行する方法がありますか?アドバンスCouch DB RDBMSのような結合操作
答えて
で
おかげで参加する方法はありませんが、しかし、あなたは、同じデータベース内、またはそれらを参照する同じ文書に添付ファイルを保存すると考えることができます。
私はそれを行うことが可能だということを知っているが、データベース内の加入:
ここではその上の偉大なポストだ:http://www.cmlenz.net/archives/2007/10/couchdb-joins
それの核心は、CouchDBのは、リストを含む、JSON値を注文することができるということです。
トップから取り上げましょう... CouchDBはわかっているように、JSONドキュメントを格納しています。これは、マップ関数を使用して順序付けられたキー値のペアを生成します(ここではcouchdbの確定ガイドからのページです:http://guide.couchdb.org/draft/views.html)。それでは、単純な例を取り上げて、次に「結合」に必要な複雑なものを考えてみましょう。
これは、db内の各文書を調べ、文書が著者を持っているかどうかをチェックし、作成されている場合は著者とその投稿を表示するマップ関数です。結果はキーによって順序付けられた 'キー値ペア'のリストになります。この場合は著者(アルファベット順に並べる)です。
function (doc) {
if (doc.author) {
emit(doc.author, doc.post);
}
}
ここでは複雑な例を示します。この例では、dbにはjson docsというブログ記事があり、別々のjson docsとしてコメントするものと仮定しています。コメントには、mySQLの外部IDと同様に、自分が所属するブログ投稿のIDを「投稿」と呼ぶキーがあります。
function(doc) {
if (doc.type == "post") {
emit([doc._id, 0], doc);
} else if (doc.type == "comment") {
emit([doc.post, 1], doc);
}
}
だから何が起こっているのですか?だから、気づくべき最初のことは 'else'部分です。この関数は、実際にブログの投稿とコメントを同じビュー(キー値のペアの順序付きリスト)にマップします。
'doc._id'は特定の投稿のIDで、 'doc.post'はコメントが2つの投稿のIDです。だから、リスト全体がブログ投稿のIDによって注文されている。
doc.typeが「ブログ投稿」の場合は、配列に「0」が付いているので、「コメント」であるドキュメントには「1」が付きます。今ここに魔法があります。ドキュメント(投稿とコメント)はキー値のペアの1つのリストで並べ替えられますが、CouchDBは配列を並べ替えることができるので、1つのブログ記事と次の記事の間に '1'(コメント)を付けたものをスライドします。理にかなっている?
私たちが以前使っていたものとはまったく違って、これは単なる創造的な解決策です。あなたが必要とするかもしれない結果を作成する他の多くの方法があります。これが参考になることを願っています!
- 1. インラインビューの定義Couch Db Ektorp
- 2. Mac OS X LionでCouch DBのインストールが動作しない
- 3. は、結合操作
- 4. couch db認証作業を行うには
- 5. MATLAB:SQLスタイルの結合操作
- 6. DB操作によるコールバックニュアンス
- 7. データをCouch DBから取り出す
- 8. 結合のスパーク操作でシャッフルが発生しない場合
- 9. SQLでの結合操作の削除
- 10. couch dbの関数エラーを評価しない
- 11. クロス結合操作のクラスタ構成
- 12. FTS4のSQLite Android結合操作
- 13. XamarinフォームアプリケーションでSQLiteの操作を結合
- 14. 春のブートで結合操作
- 15. アクティブなレコード:dbオブジェクトの操作
- 16. Tornado RDBMS統合
- 17. 文字列RDD結合操作
- 18. SQL結合値を操作する
- 19. ハッシュ結合とマージ結合(Oracle RDBMS)の違いは何ですか?
- 20. RDBMSの結果キャッシュとアプリケーションレベルのキャッシュ
- 21. couch dbの地図のキーと値のペアの照会
- 22. couch dbとSQLサーバーを並べて使用
- 23. Laravelによるコレクション結果の操作
- 24. LevelDBのようなLSMツリーをRDBMSのストレージエンジンとして使用
- 25. mongodbのMysql INSTRのような操作
- 26. Couch DBで一方向の同期を実現する方法
- 27. 通知のようなドラッグ操作
- 28. Facebook |ボタンのような操作
- 29. dplyrのような行操作
- 30. postgresql - どのようにクエリ結果を操作するには?
それらを参照するのと同じ文書。 – Mintu