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

时间:2014-05-12 15:36:40

标签: node.js mongodb express mongoose pug

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

2 个答案:

答案 0 :(得分:2)

如果你想通过node.js native api直接命中mongodb你可以使用db.collectionNames():

  

列出现有馆藏

     

列出名称

     

可以使用collectionNames

列出集合      

db.collectionNames(回调);

     

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

     

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

     

此外还有不应更改的系统集合   如果不知道你在做什么,这些解决方案就可以了   用系统前缀标识。例如posts.system.indexes。

     

示例:

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

http://mongodb.github.io/node-mongodb-native/markdown-docs/collections.html

答案 1 :(得分:1)

您可以使用

 db.system.namespaces.find( { name: dbName +'.' + collectionName } );

它包含集合和索引的条目,对于现有集合,它应该返回如下内容:

{ "name" : "temp333.categories" }

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