Abbiamo un'applicazione nodejs + mongodb in esecuzione da diversi anni e in sviluppo su più macchine. Su macchina di un solo sviluppatore, sto vedendo l'erroreMongoDB in modalità Strict
MongoError: collection already exists
ricerca di questo errore indica che questo si verifica quando si cerca di creare una collezione esistente solo se la collezione è in modalità rigorosa. Non invochiamo la modalità rigorosa di mongo in nessuna parte della nostra applicazione, e possiamo solo riprodurre questo errore su una macchina.
codice che causa questo errore è la seguente:
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.
});
});
Esiste un modo per ignorare il valore di default di Mongo strict: false
? Esiste un'opzione di configurazione globale che attiva la modalità rigorosa? Preferirei non modificare il codice per specificare strict: false
per ogni raccolta solo per abilitare un singolo sviluppatore. Lo sviluppatore è in esecuzione mongo v3.2 modalità
modificato sopra. Come ho già detto, questo codice è in esecuzione negli ambienti di staging e produzione per due anni e molti sviluppatori sono in grado di eseguire questo codice. Solo una singola macchina sembra avere questo problema. Se ignoriamo manualmente gli errori per questa raccolta, vediamo lo stesso errore per tutte le altre raccolte su questa macchina, il che mi porta a credere che esista un valore di configurazione per la versione installata di mongo stessa, piuttosto che un problema con il nostro codice. – aaaarrgh
Lo sviluppatore ha installato anche l'mangusta per caso? – Jaco
@JohnnyHK Una vecchia versione. 1.2.14 – aaaarrgh