..私はちょうどマングースを学んだ、と次のように私はParent
とChild
文書をモデル化してきた私はParent
は、私もすべて削除する削除 正しい方法はマングース
var parent = new Schema({
children: [{ type: Schema.Types.ObjectId, ref: 'Child' }],
});
var Parent = db.model('Parent', parent);
var child = new Schema({
_owner: { type: Schema.Types.ObjectId, ref: 'Parent' },
});
var Child = db.model('Child', child);
children
フィールドで参照されるオブジェクト
Child
StackOverflowの上
Another questionは、すべての子オブジェクトが削除されていることを確認する必要があり、どの
parent.pre('remove', function(next) {
Child.remove({_owner: this._id}).exec();
next();
});
...親のpre
ミドルウェア機能は次のように書くことができると述べています。しかし、この場合、Parent
スキーマにchildren
配列を持つ理由はありますか?それを使わないで、作成/読み込み/更新/削除操作も実行できませんでしたか?たとえば、私はすべての子供が欲しいと思ったら私はできますか?
Child.find({_owner: user._id}).exec(function(err, results) { ... };
私はマングース「hasManyの」関係の見てきたすべての例は、しかし「子供のアレイを備えていますが、それは、その後どのように使用されるかを示していません。誰かが例を挙げたり、それを持つ目的を与えることはできますか?
ありがとうございます!だから私が理解している場合は、配列内の参照を保持することによって、子モデルのクエリで各子を取り出すのではなく、 'populate'を呼び出すことでそれらを取り出すことができます。しかし、それ以外には、子配列を維持する理由はありません。 – CSharp
親がすべての子を取得したい場合、はい、人口はあなたのためのそれらのクエリを非常に便利です:) – raubas
素晴らしい!説明をありがとう – CSharp