Mongoose: les options server/replset/mongos sont obsolètes => documentation ?

Créé le 5 juil. 2017  ·  19Commentaires  ·  Source: Automattic/mongoose

Vous souhaitez demander une fonctionnalité ou signaler un bug ?

Amélioration de la documentation

Quel est le comportement actuel ?

En utilisant Mongoose 4.11.1, je reçois l'avertissement d'obsolescence suivant :

les options server/replset/mongos sont obsolètes, toutes leurs options sont prises en charge au niveau supérieur de l'objet d'options [poolSize,ssl,sslValidate,sslCA,sslCert,sslKey,sslPass,sslCRL,autoReconnect,noDelay,keepAlive,connectTimeoutMS,socketTimeoutMS, reconnectTries,reconnectInterval,ha,haInterval,replicaSet,secondaireAcceptableLatencyMS,acceptableLatencyMS,connectWithNoPrimary,authSource,w,wtimeout,j,forceServerObjectId,serializeFunctions,ignoreUndefined,raw,promoteLongs,bufferMaxEntries,readPreference,pkFactory,promiseLibrary,readConcern,maxStalenessSecondloggers,Level,logger promouvoirValues, promouvoirBuffers, promouvoirLongs,domainsEnabled,keepAliveInitialDelay,checkServerIdentity,validateOptions]

Quel est le comportement attendu ?

Suite à l'avertissement, je cherchais dans la documentation sur la façon de résoudre cet avertissement (http://mongoosejs.com/docs/connections.html#use-mongo-client) mais je n'ai rien trouvé à ce sujet, c'est-à-dire comment je devrais migrer ces options

Veuillez mentionner votre version de node.js, mongoose et MongoDB.

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

docs

Commentaire le plus utile

Le message indique que toutes les options server, replset et mongos ont été déplacées au niveau supérieur de l'objet options.

Déplacez simplement les paramètres des touches server , replset et mongos vers le haut de l'objet.

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

se transforme en

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

Tous les 19 commentaires

+1

+1

+1

+1

Le message indique que toutes les options server, replset et mongos ont été déplacées au niveau supérieur de l'objet options.

Déplacez simplement les paramètres des touches server , replset et mongos vers le haut de l'objet.

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

se transforme en

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

Bonjour,

Juste pour information, dans mon cas, j'ai utilisé une ancienne version de winston-mongodb (v1) et j'ai reçu ces avertissements.
Je suis passé à la v2 (cf. https://github.com/winstonjs/winston-mongodb/issues/90), et les avertissements ont maintenant disparu.

Ajoutera plus de détails aux docs à propos de thjs

@BeeeQueue Je reçois toujours ce message d'avertissement. Voici ce que je fais

options et connectez-vous

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);
    });

message d'alerte

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 Déplacez -le simplement comme objet d'options principal comme celui-ci

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

@tommarien mais il y a keepAlive et connectTimeoutMS pour server et pour replset aussi, donc quand vous le mettez au niveau supérieur, lequel réglez-vous le la valeur pour? server ou replset ?

@sulhome les deux, ainsi que mongos .

il suffit de mettre toutes les options au niveau supérieur, cela fonctionne.

ancien format :
var options = {
base de données : { native_parser : vrai },
serveur : { poolSize : 5 }
}
mangouste.connect(uri, options);

nouveau format (un seul niveau):
var options = {
native_parser : vrai,
piscineTaille : 5,
}
mangouste.connect(uri, options);

mangouste.connect(
mongoString,
{
useMongoClient : vrai,
db:mongoConf.db
}
);

Ça se passe ici aussi.

@CuAnnan ci-dessous devrait fonctionner. Promouvez vos options db au niveau supérieur de l'objet options .

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

Il s'avère que la configuration de l'objet d'options a été mise à niveau au niveau supérieur, de sorte que le paramètre keepAlive dans le document doit également être modifié ~

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

devenir

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

Salut,
Quelqu'un pourrait-il suggérer quoi utiliser à la place de

options: {
    db : {
        safe: true
    }
}

Ce code peut être localisé à partir de https://github.com/angular-fullstack/generator-angular-fullstack/blob/ab8624002cd90aac100dbb6cc263d92f7f599588/templates/app/server/config/environment/index.js#L43 qui utilise toujours la mangouste avant 4.12, Je souhaite le mettre à niveau, mais je ne trouve aucune information de migration pertinente pour cela.

Merci pour tout conseil!

Acclamations,
Andrej

@azachar voici quelques documents : http://mongoosejs.com/docs/connections.html#use -mongo-client . Cependant, l'utilisation safe n'est plus nécessaire car le pilote mongodb utilise désormais les écritures reconnues par défaut , safe était une construction 2011-2012 pour activer les écritures reconnues et la journalisation en une seule commande, mais c'est maintenant un anachronisme. Je recommanderais de le supprimer entièrement.

Merci beaucoup pour votre réponse!

Envoyé de mon iPhone

Le 10 janvier 2018, à 22h30, Valeri Karpov [email protected] a écrit :

@azachar voici quelques documents : http://mongoosejs.com/docs/connections.html#use -mongo-client . Cependant, l'utilisation de safe n'est plus nécessaire car le pilote mongodb utilise les écritures reconnues par défaut maintenant, safe était une construction 2011-2012 pour activer les écritures reconnues et la journalisation en une seule commande, mais c'est maintenant un anachronisme. Je recommanderais de le supprimer entièrement.


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub ou désactivez le fil de discussion.

+1

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

ghost picture ghost  ·  3Commentaires

gustavomanolo picture gustavomanolo  ·  3Commentaires

varunjayaraman picture varunjayaraman  ·  3Commentaires

Igorpollo picture Igorpollo  ·  3Commentaires

simonxca picture simonxca  ·  3Commentaires