Javascript Mongo查询未在我的主服务器中生成结果
我试图利用承诺从我的mongoDB数据库中获取所有项目。 这是我的代码:Javascript Mongo查询未在我的主服务器中生成结果,javascript,node.js,mongodb,mongoose,promise,Javascript,Node.js,Mongodb,Mongoose,Promise,我试图利用承诺从我的mongoDB数据库中获取所有项目。 这是我的代码: exports.findAll = function(){ return new Promise(function(resolve, reject){ Collection.find({}, function(err, res){ if(err){ reject(err); } else { console.log(res);
exports.findAll = function(){
return new Promise(function(resolve, reject){
Collection.find({}, function(err, res){
if(err){
reject(err);
} else {
console.log(res);
resolve(res);
}
});
});
}
但是,当我调用findAll()
函数时,结果是一个空数组。我已检查了与数据库的连接,并且已成功建立连接。数据库本身也是非空的。我不知道我做错了什么。感谢您的帮助。提前谢谢 您可以舒适地使用MongoDB
import mongoose from 'mongoose';
创建连接
await mongoose.connect('mongodb://localhost/my_database', {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true
});
为集合创建模型
const collection= new Schema({
_id: ObjectId,
name: String,
age: Number,
});
const Collection= mongoose.model('Collection', collection);
const data = await Collection.find({});
您可以查看Mongoose文档查看更多信息谢谢您的帮助!然而,使用猫鼬似乎并不能解决我的问题。我已经使用mongoose成功地建立了一个连接,当我运行其他查询(如
findOne()
)时,它似乎运行得很好,但我无法使用findAll()函数中的承诺生成结果。我不确定我做错了什么,以及find()?
对不起,我的错,我的意思是find()
而不是findAll()
。问题似乎在于我构建承诺的方式。在一个测试项目中,我没有使用承诺,所有的函数都可以正常工作。console.log(res)
记录一个空数组?是的,console.log(err)
产生null
。