我正在尝试使用mongoose
做一个简单的交易。它在MongoDB Atlas
上完全可以正常工作,但是在mlab
中,我遇到了这样一个错误:MongoError: Transaction numbers are only allowed on storage engines that support document-level locking
。我做了一些研究,但并没有真正找到有关mlab
和document-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/