MongoDB - 如何根据两列值获取文档
MongoDB - How to get the documents based on two column values
我的 MongoDB 样本数据集合附在下面的屏幕截图中
我想通过传递成绩值来获取行,结果记录应该返回如下
情况 1:当 grade = 12 时,应返回第 1、3、6 和 7 行,即给定
12 年级应与 gradeFrom 和 gradeTo
进行比较
情况 2:当等级 = 1 时,应返回第 5 行
总结上述情况,给定的成绩应大于或等于 gradeFrom 且小于或等于 gradeTo。
下面给出了我使用的猫鼬查询,但是在我的代码中返回的数据是空的
let andCondition = [];
let grade = 12;
andCondition.push({ gradeFrom: {$gte: grade}});
andCondition.push({ gradeTo: {$lte: grade}});
let data = await Course.find({$and :andCondition});
console.log(andCondition) gives the below object
[
{ gradeFrom: { '$gte': 12 } },
{ gradeTo: { '$lte': 12 } }
]
请帮我完成这件事。
你颠倒了范围逻辑。
数学上应该是:
gradeFrom <= grade <= gradeTo
在 MongoDB 查询中:
{ gradeFrom: { $lte: grade } }
{ gradeTo: { $gte: grade } }
我的 MongoDB 样本数据集合附在下面的屏幕截图中
我想通过传递成绩值来获取行,结果记录应该返回如下
情况 1:当 grade = 12 时,应返回第 1、3、6 和 7 行,即给定 12 年级应与 gradeFrom 和 gradeTo
进行比较情况 2:当等级 = 1 时,应返回第 5 行
总结上述情况,给定的成绩应大于或等于 gradeFrom 且小于或等于 gradeTo。
下面给出了我使用的猫鼬查询,但是在我的代码中返回的数据是空的
let andCondition = [];
let grade = 12;
andCondition.push({ gradeFrom: {$gte: grade}});
andCondition.push({ gradeTo: {$lte: grade}});
let data = await Course.find({$and :andCondition});
console.log(andCondition) gives the below object
[
{ gradeFrom: { '$gte': 12 } },
{ gradeTo: { '$lte': 12 } }
]
请帮我完成这件事。
你颠倒了范围逻辑。
数学上应该是:
gradeFrom <= grade <= gradeTo
在 MongoDB 查询中:
{ gradeFrom: { $lte: grade } }
{ gradeTo: { $gte: grade } }