我正在使用winston库:https://github.com/flatiron/winston 尝试使用以下内容将数据存储到mongodb数据库:https://github.com/indexzero/winston-mongodb
插入我使用的数据:
var MongoDB = require('winston-mongodb').MongoDB;
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)(),
new (winston.transports.MongoDB)({ host: ip, db: 'caribcultivate', collection: 'log', level: 'info'})
], exceptionHandlers: [ new winston.transports.Console() ]
});
logger.log('info', "Running logs "+ d);
logger.info("Drive: "+ (new Date(d)).toDateString());
但是当我尝试使用以下方法查询数据时:
winston.query(options, function (err, results) {
if (err) {console.log(err);}
console.log(results);
});
我明白了:
{}
它适用于控制台,我正在使用Mongoose库中应用程序其他部分的数据库。
答案 0 :(得分:3)
我遇到了类似的问题。事实证明,问题在于Winston MongoDB传输期望主机选项只是主机名,我在前面加上mongodb://
。
从mongodb://
移除mongodb://123456.mongolab.com
后,以下内容适用于我:
var logger = new(winston.Logger)({
transports : [
new(winston.transports.MongoDB)({
db : 'logs',
host : '123456.mongolab.com',
username : 'username',
password : 'password'
})
]
});
答案 1 :(得分:2)
它应该是如此简单,它将全部在一行:
db : 'mongodb://myuser:mypass@ds047777.mongolab.com:54545/MyLogDB