Mamy aplikację nodejs + mongodb, która działa od kilku lat i jest rozwijana na wielu maszynach. Na maszynie tylko jedna dewelopera, widzę błądMongoDB Defaulting to Strict Mode
MongoError: collection already exists
bada ten błąd wskazuje, że nastąpi to podczas próby utworzenia istniejącą kolekcję tylko wtedy, gdy zbiór jest w trybie ścisłym. Nie wzywamy trybu ścisłego mongo w naszej aplikacji i możemy odtworzyć ten błąd tylko na jednej maszynie.
kod, który powoduje ten błąd jest następujący:
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.
});
});
Czy istnieje sposób aby przesłonić Mongo w domyślnej wartości strict: false
? Czy istnieje globalna opcja konfiguracji, która powoduje włączenie trybu ścisłego? Wolałbym nie modyfikować kodu, aby określić dla każdej kolekcji tylko strict: false
tylko dla jednego dewelopera. Deweloper pracuje Mongo v3.2 tryb
redakcją powyżej. Jak już wspomniałem, ten kod działa w środowiskach testowych i produkcyjnych przez dwa lata, a wielu programistów jest w stanie uruchomić ten kod. Wydaje się, że tylko jeden komputer ma ten problem. Jeśli ręcznie pomijamy błędy dla tej kolekcji, widzimy ten sam błąd dla wszystkich innych kolekcji na tym komputerze, co prowadzi mnie do przekonania, że istnieje wartość konfiguracyjna dla zainstalowanej wersji samego mongo, a nie problem z naszym kodem. – aaaarrgh
Czy ten programista również zainstalował mangustę? – Jaco
@JohnnyHK Stara wersja. 1.2.14 – aaaarrgh