Menu
CoddyTech

比较数字

本课属于 Coddy Node.js 学习旅程的“使用 MongoDB 的数据库”单元。第 8 课,共 29 课。

筛选器可以匹配一个确切的值,也可以比较一个数值范围。要匹配一个范围,请在字段的筛选条件中使用比较运算符。$gte 表示大于或等于。

const minimum = Number(input.minimum);
const list = await products.find({price: {$gte: minimum}}).toArray();

查询字符串中的值会以文本形式传入。比较存储的数字之前,先用 Number 转换数值上限。此示例会选择价格至少达到所请求的最低值的商品。即使只有一条文档匹配,结果仍然是数组。下一课会在书架路由中组合可选筛选条件。

challenge icon

挑战

简单

在 exercise.js 中,返回年份数值至少为 input.from 的书籍。服务器从查询字符串中获取这个值。使用提供的集合返回匹配的文档。

试试 GET /result?from=1960:Dune 和 Kindred 都匹配。试试 ?from=1970:只有 Kindred 匹配。试试 ?from=2000:返回一个空数组。本练习中的输入都是有效的年份数值。

让数据库使用 $gte 比较年份。边界值为 1965 时,Dune 和 Kindred 都会包含在内。

亲手试试

export async function exercise(books, input) {
    return await books.find().toArray();
}

使用 MongoDB 的数据库中的所有课

自己练习: Express 在线编辑器