如何从猫鼬找到所有的集合

cod*_*ode 2 mongoose mongodb

我应该找到存储在mongo数据库中的所有集合.

require('../app/models/schemas'); //loading application schemas
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
var collections = db.collections();
console.log(collections);
Run Code Online (Sandbox Code Playgroud)

这里的集合打印了'json'所有模式的组合数据.

但我想找到存储在mongo测试数据库中的所有集合.如何用猫鼬实现它?

mba*_*ird 9

您可以使用collectionNames函数返回集合列表.

db.on('open', function(){
  mongoose.connection.db.collectionNames(function(error, names) {
    if (error) {
      throw new Error(error);
    } else {
      names.map(function(cname) {
        console.log(cname.name);
      });
    }
  });
});

=> database1.system.indexes
=> database1.users
=> database1.posts
Run Code Online (Sandbox Code Playgroud)

  • 这不再有效.`collectionName`已被删除.在这里查看更新的答案:http://stackoverflow.com/a/30675970/2422544 (5认同)