MongooseJS是否支持直接或通过插件进行级联持久性?
以下内容将foo
文档添加到集合foos
中的数据库中,并正确保存文档wrap
:
var fooSchema = new Schema({ name: String, value: Number }),
fooModel = mongoose.model('Foo', fooSchema),
wrapSchema = new Schema({ name: String, item: { type: Schema.Types.ObjectId } }),
wrapModel = mongoose.model('FooWrap', wrapSchema);
var foo = new fooModel({ name: 'First', value: 1 });
foo.save(function(err, data) {
if (err) throw err;
var wrap = new wrapModel({ name: 'Foo Wrapper', item: data });
wrap.save(function (err, data) {
if (err) throw err;
...
});
});
据我了解,这种方法是正确的方法。由于Mongoose和MongoDB要求您独立保存文档。
因此,以下代码无法将bar
添加到bars
集合,但会将wrap
与bar
的{{1}}一起保存。有一个_id
集合,但没有barwraps
集合。
bars
是否有可能或者更准确地说,第二种情况是使用中间件var barSchema = new Schema({ name: String, value: Number }),
barModel = mongoose.model('Bar', barSchema),
wrapSchema = new Schema({ name: String, item: { type: Schema.Types.ObjectId } }),
wrapModel = mongoose.model('BarWrap', wrapSchema),
bar = new barModel({ name: 'Second', value: 1 }),
wrap = new wrapModel({
name: 'Bar Wrapper',
item: bar
});
wrap.save(function(err, data) {
if (err) throw err;
...
});
挂钩执行级联保存操作?
答案 0 :(得分:0)
尝试将bar
对象保存到wrapModel
,然后在wrap
中使用其ObjectId。