我想保存一个包含对象和数组的对象。但是当我最终将数据保存在mongo中时,它并没有保存一些属性。
比如“entityMap”:{},数据:{}
身体=
{ entityMap: {},
blocks:
[ { key: '637gr',
text: 'Books selected for the you ',
type: 'header-four',
depth: 0,
inlineStyleRanges: [Array],
entityRanges: [],
data: {} } ] }
这是我的mongo架构的结构。
const mongoose = require('mongoose');
const { Schema } = mongoose;
const bookSchema = new Schema({
body: {
type: {},
required: false
},
templateName: {
type: String,
required: true
},
subject: {
type: String,
required: true
},
googleId: {
type: String,
required:true
},
createdAt: { type: Date, default: Date.now },
updatedAt: { type: Date, default: Date.now }
});
mongoose.model('books', bookSchema);
当使用{}
类型声明属性时,mongoose使用Schema.Types.Mixed
类型。这样,属性可能包含任何内容,但是mongoose不会检测对它所做的更改。您必须手动告诉mongoose该属性已被修改:
book.body = { foo: { bar: { quux: 'foo' } } }
book.markModified('body');
book.save()