Aus*_*vis 13 mongoose mongodb node.js
我正在尝试使用mongoose返回dbs集合的列表.我按照此处列出的指示,但http://grokbase.com/t/gg/mongoose-orm/122xxxr7qy/mongoose-get-a-list-of-all-collections.所以这是我的代码
var mongoose = require('mongoose');
//if (mongoose.connection.readyState == 0){//checks if already connected to the database
console.log("creating connection to the database");
var Config = require('../configs/config');
var config = new Config();
config = config.getConfig().db.dev;
if (mongoose.connection.readyState = 0 ) {
mongoose.connect("mongodb://austin:password1@paulo.mongohq.com:10023/test1");
console.log('mongoose readyState is ' + mongoose.connection.readyState);
}
var collection;
mongoose.connection.on('open', function (ref) {
console.log('Connected to mongo server.');
});
//trying to get collection names
mongoose.connection.db.collectionNames(function (err, names) {
console.log(names); // [{ name: 'dbname.myCollection' }]
module.exports.Collection = names;
});
Run Code Online (Sandbox Code Playgroud)
唯一的问题是名称返回未定义.那么甚至可以使用香草猫鼬返回集合列表吗?
Squ*_*ivo 44
刚刚看到这个答案,虽然它可能已经工作,但它似乎collectionNames已从可用的功能名称中删除而有利于listCollections
这个其他堆栈溢出帖子有一个工作示例:https://stackoverflow.com/a/29461274/4127352
以下是原始文档的链接:http: //mongodb.github.io/node-mongodb-native/2.0/meta/changes-from-1.0/
小智 8
连接后尝试运行您的集合名称功能。
mongoose.connection.on('open', function (ref) {
console.log('Connected to mongo server.');
//trying to get collection names
mongoose.connection.db.listCollections().toArray(function (err, names) {
console.log(names); // [{ name: 'dbname.myCollection' }]
module.exports.Collection = names;
});
})
Run Code Online (Sandbox Code Playgroud)
这是我如何设法获取连接的数据库上的所有名称。
var mongoose = require('mongoose');
var collections = mongoose.connections[0].collections;
var names = [];
Object.keys(collections).forEach(function(k) {
names.push(k);
});
console.log(names);
Run Code Online (Sandbox Code Playgroud)
此解决方案适用于mongoose 4.4.19。
| 归档时间: |
|
| 查看次数: |
36406 次 |
| 最近记录: |