MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Node.js - Mongoose - Vérifier si une collection existe

L'option 2 est probablement la plus propre. En supposant que vous ayez une Connection Mongoose objet nommé conn qui a été ouvert en utilisant mongoose.createConnection , vous pouvez accéder au mongo natif Db objet via conn.db . De là, vous pouvez appeler collectionNames qui devrait fournir ce que vous recherchez :

conn.db.collectionNames(function (err, names) {
    // names contains an array of objects that contain the collection names
});

Vous pouvez également passer un nom de collection en tant que paramètre à collectionNames pour filtrer les résultats en fonction de ce que vous recherchez.

Mise à jour de Mongoose 4.x

Dans la version 2.x du pilote natif MongoDB utilisé par Mongoose 4.x, collectionNames a été remplacé par listCollections qui accepte un filtre et renvoie un curseur pour que vous procédiez comme suit :

mongoose.connection.db.listCollections({name: 'mycollectionname'})
    .next(function(err, collinfo) {
        if (collinfo) {
            // The collection exists
        }
    });