我是node.js和MongoDB的新手。我正在使用Mongoose Library通过node.js访问MongoDB。
我有两个架构,书和作者。作者are_to a book and Book has_many Author。
我的模式中有这个:
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中删除文档时,它将被删除而不检查参照完整性。我的情况是,如果作者文档嵌入了Book,则无法删除。 Mongoose会自动检查书中嵌入的作者文档吗?可能吗?怎么样?
答案 0 :(得分:1)
您可以针对您提到的架构尝试以下代码。
Author.pre('remove', function(next) {
Author.remove({name: this.name, updated_at: this.updated_at }).exec();
Book.remove({authorId : this._id}).exec();
next();
});
的更多信息