node.js - 如何检查MongoDB native nodejs驱动程序中是否存在集合?

我需要检查某个数据库上是否存在集合,如果不存在则创建它。我知道

db.createCollection(collName, {strict:true}, function(error, collection))

在创建之前检查集合 collName 的存在并设置 error 对象。但我需要一个独立的函数来检查。

最佳答案

collectionNames native 驱动程序的 Db 对象的方法接受一个可选的集合名称过滤器作为第一个参数,让您检查集合的存在:

db.collectionNames(collName, function(err, names) {
    console.log('Exists: ', names.length > 0);
});

在 2.x 版本的 MongoDB 原生驱动中,collectionNames 已被 listCollections 取代它接受一个过滤器并返回一个游标,所以你可以这样做:

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

https://stackoverflow.com/questions/21023982/

相关文章:

php - 安装 PHP 7 MongoDB 客户端/驱动程序?

javascript - Node.js - 等待多个异步调用

mongodb - 如何在mongodb中找到最小值

c# - MongoDB C# 驱动程序 : Ignore Property on Insert

sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点

mongodb - 如果存在如何更新,否则插入新文档?

java - MongoDB 是关系 db + lucene 的有效替代品吗?

mongodb - 在 Mongo 中,如何显示集合的索引?

sql - 为什么 MongoDB 比 SQL DB 快得多的任何详细和具体原因?

mongodb - 如何在不丢失数据的情况下调整 mongodb 上限集合的大小?