填充后保存mongoose模型和子模型

时间:2014-04-16 17:49:17

标签: node.js mongodb mongoose

我正在尝试找到一种方法来简化我的后端逻辑并优化我的数据库,因为如果我可以同时保存文档及其子文档以便创建子文档变得更容易,那就太棒了。

这是一个简单的例子:

主要模型:

var ItemSchema = new Schema({
  name: {type : String},
  extrainfo: {type: Schema.Types.ObjectId, ref: 'Extrainfo'},
})
mongoose.model('Item', ItemSchema);

子文档:

var ExtrainfoSchema = new Schema({
  this: {type : String},
  that: {type: String},
})
mongoose.model('Extrainfo', ExtrainfoSchema);

我希望如何保存:

Item.findOne({ name: 'whatever' }).populate('extrainfo').exec(function (err, item) {
  item.extrainfo.this = "something diferen" //some random change in subdocument
  item.save(function(){console.log("yay")}
});

有没有办法这样做而无需单独保存到文档和子文档?

1 个答案:

答案 0 :(得分:1)

  

有没有办法这样做而无需单独保存到文档和子文档?

不。 mongodb会在给定的写入操作中写入一个且只有一个集合,而且据我所知,mongoose没有提供任何功能来提供单回调功能写入多个集合。