Model.prototype.save([options][, callback])
html
Document.prototype.save([options][, callback])
數據庫
_id
字段,則插入新文檔,相似於 insert()
。_id
字段,則更新文檔,至關於 update(filter,update,{upsert: true})
_id
字段(必須是 ObjectId
形式),但 _id
的值在集合中不存在,則插入新文檔,_id
字段使用文檔中的值,不生成新的。let doc = new AuthorModel({ name: 'dora' }); // model 的實例是 document let data = await doc.save(); data instanceof AuthorModel // true data instanceof mongoose.Document // true
{}
形式。callback
,則返回 promise
。Model.create(docs[, options][, callback])
api
將一個或多個文檔保存到數據庫的快捷方式。create(docs)
爲 docs
中的每一個文檔執行 MyModel(doc).save()
。數組
schema
中的字段,在建立的時候不會被添加進數據庫。schema
中有默認值的字段會自動添加進數據庫。type
爲 Array
的字段默認值是 []
空數組。schema
中 required
爲 true
的字段沒有的時候,會報錯。let data = await Model.create(doc, doc) let data = await Model.create([ doc, doc ])
callback
,則返回 promise
。{}
形式建立一條,返回 {}
形式帶 _id
的數據。[]
形式建立一條,返回 []
形式帶 _id
的數據。[]
數組形式的數據。Model.insertMany(docs[, options][, callback])
promise
該方法比 create()
方法更快,由於它只向服務器發送一個操做,而不是每一個文檔發送一個操做。服務器
Mongoose 在向 MongoDB 發送 insertMany
以前會驗證每一個文檔。所以,若是一個文檔出現驗證錯誤,則不會保存任何文檔,除非將 ordered
選項設置爲 false
。mongoose
{}
形式,只插入一條文檔。[]
形式,可插入多條文檔。ordered
:默認爲 true
(有序插入),即在遇到第一個錯誤時就失敗並返回 error
;若是爲 false
(無序插入),則插入全部能夠正常插入的文檔,而後返回錯誤信息。rawResult
:默認 false
,返回插入數據庫的文檔,若是爲 true
,返回 mongoose 原生 result。callback
,則返回 promise
。[]
或 {}
形式建立數據,都返回 []
數組形式的結果。