node.js - Mongoose find 不适用于查询对象
问题描述
我正在node.js
学习mongo db
。我有一个代码来获取记录并且工作正常
await studentModel.find({}, (err, data) => {
if (err) throw err;
students= data.map((d) => {
return new InterviewQuestion(d['roll_no'], d['name']);
});
});
但是当我想过滤它们时,查询不会返回任何记录
await studentModel.find({sClass: sClass}, (err, data) => { //sClassis a field in document and also the name of variable
if (err) throw err;
students= data.map((d) => {
return new InterviewQuestion(d['roll_no'], d['name']);
});
});
解决方案
当您使用 async/await 时,不要使用回调并在 async/await 方法中使用 try/catch,这样您就可以这样做
try {
let data = await studentModel.find({});
students = data.map((d) => {
return new InterviewQuestion(d["roll_no"], d["name"]);
});
} catch (err) {
throw err;
}
try {
let data = await studentModel.find({ sClass: sClass });
students = data.map((d) => {
return new InterviewQuestion(d["roll_no"], d["name"]);
});
} catch (err) {
throw err;
}
这个查询是正确的
await studentModel.find({ sClass: sClass })
你也可以试试这个:
await studentModel.find({ sClass})
你的问题来自另一件事,因为我测试了查询每件事都可以
推荐阅读
- c# - C# 处理数据类型字符串进行数学运算时出错
- unity3d - Vuforia Unity - 跟踪简单的 3D 形状
- javascript - 数组分组和排序
- javascript - 调试开发者控制台插入的 javascript
- asynchronous - 如何获取 HttpRequest 的结果?
- sql - SSRS 查找跳过不拾取值的行
- ios - Mantle:忽略数组内嵌套字典中的键
- idris - 在这种情况下,为什么 rewrite 不会改变表达式的类型?
- three.js - 第一人称游戏 Three.js - 控制 - 移动相机
- database - 设置 datestyle = 'SQL, DMY' 失败