在 MongoDB / mongoose 中创建一个文档而不返回它

Create a document without returning it, in MongoDB / mongoose

我正在创建大量文档,我担心一半的服务器带宽都花在了return将这些新文档返回给调用者上。

我不希望服务器 return 将文件发给我。我只想在文档保存后得到确认。

我在更新文档时解决了这个问题,方法是使用Model.updateOne()而不是Model.findOneAndUpdate()

但是如何在创建文档时做同样的事情呢?

到目前为止我已经尝试过:

Model.create(docData)

new Model(docData).save()

Model.collection.insert(docData)

Model.collection.insertMany([docData])

但在任何情况下,猫鼬(或 mongodb driver)return 对我来说都是一份文件。

我不确定 MongoDB 是否真的通过网络发回文档,或者它是否只是发回新的 _id 并由driver。但我害怕前者。

如何在不 MongoDB 将文档发回给我的情况下保存文档?

根据mongoose document of insertMany it says that the result is an insertWriteOpCallback其中,根据mongodb驱动程序的文档说它return插入的文件。


在其他人手中 mongodb documentation about insert tells us about a WriteResult object 没有 returning 任何文件。


答案是 mongodb-驱动程序正在将插入的文档添加到它的响应中。


你可以做的是使用 mongodb-native 驱动程序中的方法 bulkWrite,它允许你执行插入并仅获得 mongodb 响应(因此没有文档).