mongodb不会在主对象中保存2个对象

问题描述 投票:0回答:1

我想保存一个包含对象和数组的对象。但是当我最终将数据保存在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);

enter image description here

mongodb draftjs
1个回答
0
投票

当使用{}类型声明属性时,mongoose使用Schema.Types.Mixed类型。这样,属性可能包含任何内容,但是mongoose不会检测对它所做的更改。您必须手动告诉mongoose该属性已被修改:

book.body = { foo: { bar: { quux: 'foo' } } }
book.markModified('body');
book.save()

Mongoose SchemaTypes

© www.soinside.com 2019 - 2024. All rights reserved.