Mongoose:如何检查文档是否通过model.findOneAndUpdate()修改
在mongoose中,我们可以检查一个更新操作是否用model.update()
修改了文档:
model.update(query, update, function(err, raw){ if (raw.nModified >= 1) console.log('document is modified!') });
有没有办法做到这一点与model.findOneAndUpdate()
?
model.findOneAndUpdate(query, update, { new: true }, function(err, doc){ if (doc) { // So MongoDB found the document, but is there a way // to know the document was indeed modified? } });
您可以将选项{ passRawResult : true }
传递给{ passRawResult : true }
,以通知{ passRawResult : true }
传递基础mongodb驱动程序的原始结果,本例中为mongodb-native,作为callback的第三个参数。
用于findOneAndUpdate的 mongodb本地文档
model.findOneAndUpdate(query, update, { new: true, passRawResult : true }, function(err, doc, res){ // res will look like // { value: { _id: 56a9fc80a7f9a4d41c344852, name: 'hugo updated', __v: 0 }, // lastErrorObject: { updatedExisting: true, n: 1 }, // ok: 1 } });
如果更新没有成功,由于没有匹配的文件被发现一个null
资源将被传递给callback。 如果文档匹配,但是与更新res对象相同的字段值将不会提供足够的信息来确定是否更新了匹配文档的值。
- 在Cloudant DBsearchAPI中使用angularjs和node.js后端
- Nodejs:将大量行批量插入到数据库中
- 数据库会话在nodejs / express中的支持
- Node.js没有很好的pipe理MySQL模式/迁移的ORM …所以我可以使用SQLAlchemy来pipe理它吗?
- Limit = 1 = 1ms,Limit> 1 = 150ms(mongo-melt-down)
- 如何在DynamoDB中创buildUUID?
- mongoose:模式与模型?
- 很多很多自我参考在sequelize在twitter像web应用程序
- 节点Mongoose,投射到ObjectId在path“PATH”上的值“N”失败