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
。[]
或 {}
形式建立数据,都返回 []
数组形式的结果。