[解決済み] mongoの外部キー?
2022-01-29 01:59:51
質問
MongoDBでこのようなスキームを設計するにはどうしたらよいでしょうか。外部キーがないのでは!
どのように解決するのですか?
Mongoid や MongoMapper のような ORM を使うことに興味があるかもしれません。
http://mongoid.org/docs/relations/referenced/1-n.html
MongoDBのようなNoSQLデータベースでは、「テーブル」ではなく「コレクション」が存在します。ドキュメントはコレクション内にグループ化されています。どんな種類のドキュメントでも、どんな種類のデータでも、ひとつのコレクションに入れることができます。基本的に、NoSQLデータベースでは、データとその関係をどのように整理するかは、あなた次第です。
MongoidとMongoMapperがやっているのは、リレーションを簡単に設定できる便利なメソッドを提供することです。リンク先を見て、何でも聞いてみてください。
編集する
mongoidでは、このようにスキームを記述します。
class Student
include Mongoid::Document
field :name
embeds_many :addresses
embeds_many :scores
end
class Address
include Mongoid::Document
field :address
field :city
field :state
field :postalCode
embedded_in :student
end
class Score
include Mongoid::Document
belongs_to :course
field :grade, type: Float
embedded_in :student
end
class Course
include Mongoid::Document
field :name
has_many :scores
end
編集する
> db.foo.insert({group:"phones"})
> db.foo.find()
{ "_id" : ObjectId("4df6539ae90592692ccc9940"), "group" : "phones" }
{ "_id" : ObjectId("4df6540fe90592692ccc9941"), "group" : "phones" }
>db.foo.find({'_id':ObjectId("4df6539ae90592692ccc9940")})
{ "_id" : ObjectId("4df6539ae90592692ccc9940"), "group" : "phones" }
そのObjectIdを利用して、ドキュメント間のリレーションを行うことができます。
関連
-
[解決済み】sys.dm_exec_sql_textはどのように機能するのでしょうか?
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] テーブルやカラムに対するすべての外部キーを確認するにはどうすればよいですか?
-
[解決済み] MongoDBとその逆の上にCouchDBを使用するとき
-
[解決済み] MongoDBのリレーションシップ:埋め込みか参照か?
-
[解決済み] MySQL エラー 1215。外部キー制約を追加できません
-
[解決済み】既存テーブルへの外部キー追加
-
[解決済み】テーブルの外部キーを一覧表示する方法
-
[解決済み】Postgresと外部キーおよびプライマリキー上のインデックス
-
[解決済み】MySQLで外部キー制約を追加できない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】オペランド型の衝突:intはdateと互換性がない + INSERT文はFOREIGN KEY制約と衝突した
-
[解決済み】2つの列を分割する方法は?
-
[解決済み】PL/SQL SELECTに複数のCOUNT(DISTINCT xxx)を指定すると、予期しない結果になる。
-
[解決済み] バックエンドバージョンでは、データベースのダイアグラムやテーブルのデザインはサポートされていません。
-
[解決済み】一括読み込みデータ変換エラー(指定されたコードページに対して型の不一致または無効な文字)1行目4列目(年)について)
-
[解決済み] テスト
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] SQL Server サブクエリが 1 つ以上の値を返しました。これは、サブクエリが =, !=, <, <= , >, >= のように続く場合は許可されません。
-
[解決済み] ORA-04063: ビューにエラーがあります
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法