如何使用Node.js检查MongoDB中是否存在集合?
基本上,我想根据集合是否存在来隐藏div 。 有谁知道最简单的方法呢? 我正在用Jade使用Mongoose和Express.js。
如果你想通过node.js本地api直接点击mongodb,你可以使用db.collectionNames():
列出现有的集合
列表名称
可以使用collectionNames列出集合
db.collectionNames(callback);
callback获取两个参数 – 一个错误对象(如果发生错误)和一个集合名称作为string的数组。
集合名称还包括数据库名称,因此数据库博客中名为posts的集合将被列为blog.posts。
另外还有一些系统集合,如果不知道你在做什么,就不应该改变,这些解决scheme可以用系统前缀来标识。 例如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
你可以使用
db.system.namespaces.find( { name: dbName +'.' + collectionName } );
它包含集合和索引的条目,对于现有的集合,它应该返回如下所示的内容:
{ "name" : "temp333.categories" }
要从mongoose做到这一点,你可以定义system.namespaces模型和查询。