如何使用Node.js检查MongoDB中是否存在集合?

如何使用Node.js检查MongoDB中是否存在集合?,node.js,mongodb,express,mongoose,pug,Node.js,Mongodb,Express,Mongoose,Pug,基本上,我想根据集合是否存在来隐藏div。有人知道最简单的方法吗?我将Mongoose和Express.js与Jade一起使用。您可以使用 db.system.namespaces.find( { name: dbName +'.' + collectionName } ); 它包含集合和索引项,对于现有集合,它应返回如下内容: { "name" : "temp333.categories" } 要从mongoose执行此操作,您可以定义system.namespaces模型和查询。如果您

基本上,我想根据集合是否存在来隐藏div。有人知道最简单的方法吗?我将Mongoose和Express.js与Jade一起使用。

您可以使用

 db.system.namespaces.find( { name: dbName +'.' + collectionName } );
它包含集合和索引项,对于现有集合,它应返回如下内容:

{ "name" : "temp333.categories" }

要从mongoose执行此操作,您可以定义system.namespaces模型和查询。

如果您想通过node.js本机api直接访问mongodb,可以使用db.collectionNames():

列出现有收藏

列名

集合可以与CollectionName一起列出

db.collectionNames(回调)

回调获取两个参数-一个错误对象(如果发生错误)和 作为字符串的集合名称数组

集合名称还包括数据库名称,因此 数据库博客中的帖子将作为blog.posts列出

此外,还存在不应更改的系统集合 在不知道你在做什么的情况下,这些选择可能会 用系统前缀标识。例如posts.system.index

例如:


问题已在此处得到解答:希望此帮助此迁移后不再存在此方法:
var MongoClient = require('mongodb').MongoClient   , format = require('util').format;

MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {

  if(err) throw err;   
  db.collectionNames(function(err, collections){
       console.log(collections);   
  }); 
});