mongoose不能保存embedded的文件
我正在尝试在Mongo DB中创build一个embedded文档的文档。 文档的模型/架构如下所示:
var mongoose = require('mongoose'); var Schema = mongoose.Schema; // Cupboard Collection Schema var ShelfSchema = new Schema({ shelf_name: { type: String }, shelf_desc: { type: String } }); var CupboardSchema = new Schema({ cupboard_name: { type: String, required: true, unique: true }, cupboard_desc: { type: String, required: true }, shelf: [ShelfSchema] }, { timestamps: true }); module.exports = mongoose.model('Cupboard', CupboardSchema);
该图显示了保存文档的代码。
当我在控制台中打印“newCupboard”时,我以如下格式获取文档:
{ _id: 58e4b972931dc809f4127b0b cupboard_name: Cupboard A, cupboard_desc: Cupboard A Details, shelf: [ { shelf_name: Cupboard A, shelf_desc: Cupboard A Details, _id: 58e4c2742bfc0111dc47f149 }] }
但执行后,embedded的文件没有得到保存,也没有显示错误。 最终结果如下所示:
{ _id: 58e4b972931dc809f4127b0b cupboard_name: Cupboard A, cupboard_desc: Cupboard A Details }
任何人都可以帮我弄清楚,为什么embedded式文档没有得到保存在mongo数据库?
谢谢。
您不要将embedded式文档作为整个文档保存在另一个文档中。 您必须保存文档的_id,在获取logging时,您将在查询中调用populate()
。
所以,让我们假设您必须将文档保存在橱柜架构中,架构将如下所示 –
var CupboardSchema = new Schema({ cupboard_name: { type: String, required: true, unique: true }, cupboard_desc: { type: String, required: true }, shelf: { type: Schema.Types.ObjectId, ref: 'ShelfSchema'} }, { timestamps: true });
现在,在“架子”上保存相应的文档,您要填充。 而当你将要获取文档,调用populate()
像 –
CupboardSchemaModel.find({_id: <some-id-you-want-to-fetch>}).populate('shelf');