我正在尝试使用mongoose做一个简单的交易。它在MongoDB Atlas上完全可以正常工作,但是在mlab中,我遇到了这样一个错误:MongoError: Transaction numbers are only allowed on storage engines that support document-level locking。我做了一些研究,但并没有真正找到有关mlabdocument-level locking的任何资源。
有谁知道如何解决这个问题?

最佳答案

我有同样的问题,然后我联系mlab帮助,这是他们的回复:

该错误表明您的应用程序/驱动程序正在尝试使用与您的共享群集部署不兼容的功能,该功能使用了MMAPv1存储设备。您可能已启用了可重试写入(https://docs.mongodb.com/manual/core/retryable-writes/)。您可以尝试在连接字符串(https://docs.mongodb.com/manual/reference/connection-string/#urioption.retryWrites)中关闭该功能,还是直接从驱动程序设置中关闭该功能?

关闭此功能后,如果您仍然遇到此错误,请告诉我们。

基于此答案,我在mongodb连接url中附加了retryWrites = false,然后运行良好。

关于node.js - 如何解决mlab中的交易错误? [MongoError : Transaction numbers are … support document-level locking],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55878421/

10-13 03:03