2017-12-18 12 views
0

内部にオブジェクトと配列を持つオブジェクトを保存します。しかし、私がmongoにデータを保存すると、それはいくつかのプロパティを保存しません。 {}、データ:{}mongodbはメインオブジェクトの中に2つのオブジェクトを保存しません

体私のMongoのスキーマは構造どの=

{ entityMap: {}, 
    blocks: 
    [ { key: '637gr', 
     text: 'Books selected for the you ', 
     type: 'header-four', 
     depth: 0, 
     inlineStyleRanges: [Array], 
     entityRanges: [], 
     data: {} } ] } 

相続人 "entityMap" 等

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

答えて

0

タイプ{}とプロパティを宣言するとき、マングースはSchema.Types.Mixedタイプを使用します。この方法では、プロパティに何かが含まれている可能性がありますが、マングースは変更を検出しません。手動でプロパティが変更されたことマングースを伝える必要があります:それは仕事をdidntの

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

Mongoose SchemaTypes

+0

、この変更を行った後、私はMongoDBの中に追加された新しいオブジェクトには変化は見られません。 Date.now() : –

+0

申し訳ありませんが、私は、私は私の変化 のconstブック=新しいブック({ 体、 件名、 TEMPLATENAME、 googleId、 dateSent相続人は、私のポスト – maxpaj

+0

ハズレのdidntの仕事を更新markModifiedビットを逃しました}); try { book.markModified( 'body'); await book.save(); res.send(book); } catch(エラー){ console.log( 'err while saving ='、err); res.status(422).send(err); } –

関連する問題