node.js と MongoDB は初めてです。node.jsでMongoDBにアクセスするためにMongoose Libraryを使用しています。
Book と Author の 2 つのスキーマがあります。著者は本に属し、本は多くの著者を持っています。
私は自分のスキーマにこれを持っています:
var mongoose = require( 'mongoose' );
var Schema = mongoose.Schema;
var Book = new Schema({
title : String,
isbn : String,
authorId : [{ type: Schema.Types.ObjectId, ref: 'Author' }],
updated_at : Date
});
var Author = new Schema({
name : String,
updated_at : Date
});
mongoose.model( 'Book', Book );
mongoose.model( 'Author', Author );
mongoose.connect( 'mongodb://localhost/library' );
問題は、Book に埋め込まれたドキュメントを Author から削除すると、参照整合性をチェックせずに削除されることです。私のシナリオは、Author ドキュメントが Book に埋め込まれている場合、削除できないというものです。Mongoose は本に埋め込まれた著者文書を自動的にチェックしますか? 出来ますか?ではどうやって?