【发布时间】:2018-09-03 19:55:39
【问题描述】:
在使用 findOne、find 或其他任何东西时,我一直遇到 mongo(特别是 mongoose)根本不返回的问题。
我正在使用猫鼬 3.8.12
MongoDB 3.6.3
节点 8.10.0
ubuntu 16.04
digitalocean 上的水滴
我已经修改了 mongoose 示例,使其尽可能简单,而且它只是不会返回期间。
它在我的应用程序上做同样的事情,所以我试着做一个简单的 mongo 测试。
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
const Cat = mongoose.model('Cat', { name: String });
const kitty = new Cat({ name: 'Zildjian' });
kitty.save()
Cat.findOne({}, function(err, kitten) {
if(err){
console.log('Error');
return;
}
if(kitten){
console.log(kitten)
}else{
console.log('No Kitten here')
}
})
我已经使用 Robo3t 测试了 mongo 安装,它可以正常运行。
知道我可以从哪里开始寻找吗?
【问题讨论】:
-
当您从 mongo shell 或 Robo3t 运行 db.cats.findOne() 时它是否返回任何内容?您是否检查过从此代码与 mongodb 的连接是否成功?
-
它返回 null 因为保存不起作用。 console.log(mongoose.connection.readyState);返回 2
-
好的,所以看起来它只是停留在连接状态,但从未真正连接。有什么想法可以看吗?
-
检查 mongodb 日志,看看你的应用是否真的去那里并建立任何连接
-
2018-03-25T19:08:58.849+0000 I NETWORK [listener] 连接从 127 接受。0.0.1:51168 #91(现在打开 1 个连接)