在不知道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) { });