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

时间:2017-11-20 10:02:23

标签: mongodb mongoose node-mongodb-native

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

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

使用Model.updateOne()代替Model.findOneAndUpdate()时,我能够在更新文档时解决此问题。

但是在创建文档时如何才能这样做?

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

Model.create(docData)

new Model(docData).save()

Model.collection.insert(docData)

Model.collection.insertMany([docData])

但在每种情况下,mongoose(或mongodb驱动程序)都会向我返回一份文件。

我不确定MongoDB是否实际上是通过网络发送文档,还是只是发回新的_id并且驱动程序将其附加到原始数据。但我担心前者。

如果没有MongoDB将文件发回给我,如何保存文件?

1 个答案:

答案 0 :(得分:1)

根据mongoose document of insertMany,它说结果是insertWriteOpCallback,根据mongodb驱动程序的文档说它返回插入的文档。

另一方面,mongodb documentation about insert告诉我们一个WriteResult object没有返回任何文件。

答案是mongodb-driver正在将插入的文档添加到其响应中。

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