在不知道Schema / Collection名字的情况下获取Mongoose Schema和文档?

短版本:我基本上想做什么show collections在mongo shell,在mongoose中。

长版本:

我想创build一个应用程序,允许用户使用mongo + mongoose + node.js基本创build自己的Schema的> Collections> Documents。

这个应用程序的第一步是显示先前创build的集合及其文档。 但是,由于这些将由用户创build,他们的名字是不知道的。 我发现最接近的代码是:

 function find (collec, query, callback) { mongoose.connection.db.collection(collec, function (err, collection) { collection.find(query).toArray(callback); }); } 

但是我不知道集合的名字是什么,所以我不能通过'collec'参数。

那么,谁知道如何获得collections清单而不知道他们的名字?

我最终使用了node-mongodb-native(mongoose作用于其上的mongo驱动程序)来获取集合名称:

 var nmn_connect = require('mongoose/node_modules/mongodb').connect; nmn_connect('mongo://localhost:27017/DATABASE', function(err, db) { if(!err){ db.collectionNames(function(err, names){ // what I was looking for if(!err){ console.log(names); db.close(); }else{ console.log(err); db.close(); } }); }else{ console.log(err) } }); 

mongoose.connect()返回的对象没有类似于我可以find的collectionNames()方法。

我对mongoose一无所知,但是这个页面build议你可以使用mongoose.connection.collections来访问所有的集合: http : //mongoosejs.com/docs/api.html

每个集合都应该有一个名称属性。

尝试这个:

 mongoose.connection.db.collectionNames(function (err, names) { });