【发布时间】:2020-11-09 18:15:20
【问题描述】:
在过去的 9 个小时里,我正在尝试修复一个错误,所以我有代码
let query = User.find();
if(req.query.from){
query = query.find({date: {$gte: req.query.from}});
}
if(req.query.to){
query = query.find({date: {$lte: req.query.to}});
}
const User = await query;
res.status(200).json({status:'Success', User})
问题是当我这样做时
req.query.from = 1
req.query.to = 9
一切正常,但当我这样做时
req.query.from = 1
req.query.to = 11
它不返回任何东西。
可以查询单个数字,但是如果我想将单个数字与多个数字混合,则不起作用。 谁能帮我解决这个问题
编辑:
我的用户架构
const userSchema= new mongoose.Schema({
date: {
type:String
},
title: {
type:String
},
description:{
type:String
},
location:{
type:String
}
});
【问题讨论】:
-
您能否分享一些来自
users集合的示例文档,我们可以使用它们来测试查询,也许还可以分享User架构定义? -
@chridam 我刚刚更新
-
不确定
$gte和$lte是否与type:String完美配合 -
改成
Date type -
请发布示例
date字段的值以及req.query.from值。为了正确比较,值及其格式在日期字段值的情况下很重要。
标签: node.js mongodb mongoose mongodb-query