Mongoose: server/replset/mongos-Optionen sind veraltet => Dokumentation?

Erstellt am 5. Juli 2017  ·  19Kommentare  ·  Quelle: Automattic/mongoose

Möchten Sie eine Funktion anfordern oder einen Fehler melden?

Erweiterung der Dokumentation

Wie ist das aktuelle Verhalten?

Mit Mongoose 4.11.1 erhalte ich folgende Verfallswarnung:

Die server/replset/mongos-Optionen sind veraltet, alle ihre Optionen werden auf der obersten Ebene des Optionsobjekts unterstützt reconnectTries,reconnectInterval,ha,haInterval,replicaSet,secondaryAcceptableLatencyMS,acceptableLatencyMS,connectWithNoPrimary,authSource,w,wtimeout,j,forceServerObjectId,serializeFunctions,ignoreUndefined,raw,promoteLongs,bufferMaxEntries,readPreference,pkFactory,promiseLibrary,readConcern,maxStalenessSeconds,loggerLevel,loggerLevel,loggerLevel,loggerLevel,loggerLevel,loggerLevel promoteValues, promoteBuffers, promoteLongs, domainsEnabled, keepAliveInitialDelay,checkServerIdentity,validateOptions]

Was ist das erwartete Verhalten?

Nach der Warnung habe ich die Dokumentation durchsucht, wie diese Warnung behoben werden kann (http://mongoosejs.com/docs/connections.html#use-mongo-client), aber ich habe nichts darüber gefunden, auch nichts darüber, wie ich es tun sollte Migrieren Sie diese Optionen

Bitte geben Sie Ihre node.js-, Mongoose- und MongoDB-Version an.

Node.js v8.1.3
Mungo 4.11.1
Mongodb v3.2.14

docs

Hilfreichster Kommentar

Die Meldung besagt, dass alle Server-, Replset- und Mongos-Optionen auf die oberste Ebene des Optionsobjekts verschoben wurden.

Verschieben Sie einfach die Einstellungen von den Tasten server , replset und mongos nach oben in die oberste Ebene des Objekts.

mongoose.connect( 'mongodb://localhost/db',
  {
    useMongoClient: true,
    server: {
      poolSize: 2
    },
    promiseLibrary: global.Promise
  }
);

verwandelt sich in

mongoose.connect( 'mongodb://localhost/db',
  {
    useMongoClient: true,
    poolSize: 2,
    promiseLibrary: global.Promise
  }
);

Alle 19 Kommentare

+1

+1

+1

+1

Die Meldung besagt, dass alle Server-, Replset- und Mongos-Optionen auf die oberste Ebene des Optionsobjekts verschoben wurden.

Verschieben Sie einfach die Einstellungen von den Tasten server , replset und mongos nach oben in die oberste Ebene des Objekts.

mongoose.connect( 'mongodb://localhost/db',
  {
    useMongoClient: true,
    server: {
      poolSize: 2
    },
    promiseLibrary: global.Promise
  }
);

verwandelt sich in

mongoose.connect( 'mongodb://localhost/db',
  {
    useMongoClient: true,
    poolSize: 2,
    promiseLibrary: global.Promise
  }
);

Hallo,

Nur zur Information, in meinem Fall habe ich eine alte Version von winston-mongodb (v1) verwendet und diese Warnungen erhalten.
Ich habe auf v2 aktualisiert (vgl. https://github.com/winstonjs/winston-mongodb/issues/90), und die Warnungen sind jetzt weg.

Wird weitere Details zu den Dokumenten über thjs hinzufügen

@BeeeQueue Ich erhalte immer noch diese Warnmeldung. Hier ist, was ich tue

Optionen und verbinden

const options = {
    useMongoClient: true,
    server: { socketOptions: { keepAlive: 300000, connectTimeoutMS: 30000 } },
    replset: { socketOptions: { keepAlive: 300000, connectTimeoutMS: 30000 } }
};

mongoose.connect(<url>, options)
    .then(() => {
        logger.log('info', 'connected to mongodb');
    })
    .catch((error) => {
        logger.log('info', 'error connecting to db: ' + error);
    });

Warnmeldung

the server/replset/mongos options are deprecated, all their options are supported at the top level of the options object [poolSize,ssl,sslValidate,sslCA,sslCert,sslKey,sslPass,sslCRL,autoReconnect,noDelay,keepAlive,connectTimeoutMS,socketTimeoutMS,reconnectTries,reconnectInterval,ha,haInterval,replicaSet,secondaryAcceptableLatencyMS,acceptableLatencyMS,connectWithNoPrimary,authSource,w,wtimeout,j,forceServerObjectId,serializeFunctions,ignoreUndefined,raw,promoteLongs,bufferMaxEntries,readPreference,pkFactory,promiseLibrary,readConcern,maxStalenessSeconds,loggerLevel,logger,promoteValues,promoteBuffers,promoteLongs,domainsEnabled,keepAliveInitialDelay,checkServerIdentity,validateOptions]
the server/replset/mongos options are deprecated, all their options are supported at the top level of the options object [poolSize,ssl,sslValidate,sslCA,sslCert,sslKey,sslPass,sslCRL,autoReconnect,noDelay,keepAlive,connectTimeoutMS,socketTimeoutMS,reconnectTries,reconnectInterval,ha,haInterval,replicaSet,secondaryAcceptableLatencyMS,acceptableLatencyMS,connectWithNoPrimary,authSource,w,wtimeout,j,forceServerObjectId,serializeFunctions,ignoreUndefined,raw,promoteLongs,bufferMaxEntries,readPreference,pkFactory,promiseLibrary,readConcern,maxStalenessSeconds,loggerLevel,logger,promoteValues,promoteBuffers,promoteLongs,domainsEnabled,keepAliveInitialDelay,checkServerIdentity,validateOptions]

@sulhome Verschieben Sie es einfach so in das Hauptoptionsobjekt

const options = {
    useMongoClient: true,
    keepAlive: 300000, 
    connectTimeoutMS: 30000,
};

@tommarien , aber es gibt keepAlive und connectTimeoutMS für server und auch für replset , also wenn du es auf die oberste Ebene legst, welche stellst du ein Wert für? server oder replset ?

@sulhome sowohl als auch mongos .

Setzen Sie einfach alle Optionen in die oberste Ebene, es funktioniert.

altes Format:
var-Optionen = {
db: { native_parser: true },
server: { poolSize: 5 }
}
mongoose.connect (uri, Optionen);

neues Format (nur eine Ebene):
var-Optionen = {
native_parser: wahr,
Beckengröße: 5,
}
mongoose.connect (uri, Optionen);

Mungo.connect (
mongoString,
{
useMongoClient:true,
db:mongoConf.db
}
);

Passiert auch hier.

@CuAnnan das Folgende sollte funktionieren. Fördern Sie Ihre db -Optionen auf das options -Objekt der obersten Ebene.

mongoose.connect(
mongoString,
Object.assign({
useMongoClient:true
}, mongoConf.db)
);

Es stellt sich heraus, dass die Konfiguration des Optionsobjekts auf die oberste Ebene aktualisiert wurde, sodass die Einstellung keepAlive im Dokument ebenfalls geändert werden sollte~

options.server.socketOptions = options.replset.socketOptions = { keepAlive: 120 };

werden

options = { socketTimeoutMS: 0, keepAlive: true, reconnectTries: 30 }

Hi,
Könnte jemand vorschlagen, was man stattdessen verwendet

options: {
    db : {
        safe: true
    }
}

Dieser Code kann unter https://github.com/angular-fullstack/generator-angular-fullstack/blob/ab8624002cd90aac100dbb6cc263d92f7f599588/templates/app/server/config/environment/index.js#L43 gefunden werden, das immer noch Mongoose vor 4.12 verwendet, Ich möchte es aktualisieren, kann aber keine relevanten Migrationsinformationen dafür finden.

Danke für jeden Ratschlag!

Prost,
Andrej

@azachar hier sind einige Dokumente: http://mongoosejs.com/docs/connections.html#use -mongo-client . Die Verwendung safe safe jedoch nicht mehr erforderlich, da der mongodb-Treiber jetzt standardmäßig bestätigte Schreibvorgänge verwendet jetzt ein Anachronismus. Ich würde empfehlen, es einfach komplett zu entfernen.

Vielen Dank für ihre Antwort!

von meinem Iphone gesendet

Am 10. Januar 2018 um 22:30 Uhr schrieb Valeri Karpov [email protected] :

@azachar hier sind einige Dokumente: http://mongoosejs.com/docs/connections.html#use -mongo-client . Die Verwendung von safe ist jedoch nicht mehr erforderlich, da der mongodb-Treiber jetzt standardmäßig bestätigte Schreibvorgänge verwendet. safe war ein Konstrukt von 2011-2012, um bestätigte Schreibvorgänge und Journaling in einem Befehl einzuschalten, aber es ist jetzt ein Anachronismus. Ich würde empfehlen, es einfach komplett zu entfernen.


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub an oder schalten Sie den Thread stumm.

+1

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen