Mongoose 是一个用于 Node.js 的 MongoDB 对象建模工具,它提供了一种直接的、基于模式的解决方案来建模应用的数据,并包含内置的类型转换、验证、查询构建、业务逻辑钩子等功能。
适用于需要复杂数据结构和验证的应用,如博客系统、电子商务平台、社交网络等。
由于 Mongoose 查询/承诺,无法获取所需数据。
确保查询条件正确无误。例如:
const User = mongoose.model('User', userSchema);
// 错误的查询条件
User.find({ name: 'John' }, (err, users) => {
if (err) return console.error(err);
console.log(users);
});
// 正确的查询条件
User.find({ name: 'John Doe' }, (err, users) => {
if (err) return console.error(err);
console.log(users);
});
使用 async/await
或 Promise
处理异步操作。例如:
async function getUsers() {
try {
const users = await User.find({ name: 'John Doe' }).exec();
console.log(users);
} catch (err) {
console.error(err);
}
}
getUsers();
在查询结果中检查结果是否存在。例如:
User.findOne({ name: 'John Doe' }, (err, user) => {
if (err) return console.error(err);
if (!user) {
console.log('User not found');
return;
}
console.log(user);
});
确保数据库连接正常。例如:
mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('Connected to MongoDB'))
.catch(err => console.error('Connection error:', err));
通过以上步骤,您应该能够诊断并解决由于 Mongoose 查询/承诺导致的数据获取问题。
领取专属 10元无门槛券
手把手带您无忧上云