我们有一个nodejs + mongodb应用程序已经在生产中运行了好几年,并且在多台机器上进行开发。在一台开发人员的机器上,我看到了错误
MongoError: collection already exists
研究此错误表示仅在集合处于严格模式时尝试创建现有集合时才会出现此错误。我们不会在应用程序的任何地方调用mongo的严格模式,我们只能在一台机器上重现此错误。
导致此错误的代码如下:
var mongo = require('mongodb');
mongo.MongoClient.connect(config.mongoConnectionString, {w:1}, function(err, db) {
db.createCollection('accounts', function(err, collection) {
// "err" here is the error message.
});
});
有没有办法覆盖mongo的默认strict: false
值?是否有全局配置选项导致严格模式打开?我宁愿不修改代码来为每个集合指定strict: false
只是为了启用单个开发人员。开发人员正在运行mongo v3.2
答案 0 :(得分:1)
您可以使用此
禁用'严格'模式var mongo = require('mongodb');
mongo.MongoClient.connect(config.mongoConnectionString, {w:1}, function(err, db) {
db.createCollection('accounts', {strict:false}, function(err, collection) {
// "err" here is the error message.
});
});
您可以从here
了解更多相关信息