比较数字
本课属于 Coddy Node.js 学习旅程的“使用 MongoDB 的数据库”单元。第 8 课,共 29 课。
筛选器可以匹配一个确切的值,也可以比较一个数值范围。要匹配一个范围,请在字段的筛选条件中使用比较运算符。$gte 表示大于或等于。
const minimum = Number(input.minimum);
const list = await products.find({price: {$gte: minimum}}).toArray();查询字符串中的值会以文本形式传入。比较存储的数字之前,先用 Number 转换数值上限。此示例会选择价格至少达到所请求的最低值的商品。即使只有一条文档匹配,结果仍然是数组。下一课会在书架路由中组合可选筛选条件。
挑战
简单在 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 在线编辑器