Javascript 无法使用日期(nodejs)查询mongoose数据
我正在尝试查询所有“inputDate”介于startDate和endDate之间的帮助文档。我上网已经很久了,但我无法让它工作。支持检索数据库中当前唯一的文档。我正在使用NodeJS+Mongoose 控制器中的代码如下所示:Javascript 无法使用日期(nodejs)查询mongoose数据,javascript,node.js,mongodb,mongoose,backend,Javascript,Node.js,Mongodb,Mongoose,Backend,我正在尝试查询所有“inputDate”介于startDate和endDate之间的帮助文档。我上网已经很久了,但我无法让它工作。支持检索数据库中当前唯一的文档。我正在使用NodeJS+Mongoose 控制器中的代码如下所示: exports.getOccupation = (req, res, next) => { var inputDate = new Date("1999","10","13","16
exports.getOccupation = (req, res, next) => {
var inputDate = new Date("1999","10","13","16","0","0");
Assistance.find({
dateInterval:{
startDate: {$lte:inputDate},
endDate: {$gte:inputDate}
}
})
.then(assistances => {
console.log(assistances.length);
})
}
模型的代码:
const assistanceSchema = new Schema(
{
user_id:{
type: Schema.ObjectId
},
place:{
longitude:{
type:String
},
latitude:{
type:String
}
},
dateInterval:{
startDate: Date,
endDate: Date
}
},
{timestamps:true}
);
我不确定,但我相信find()方法接受dateInterval.startDate而不是dateInterval:{startDate:…} 尝试以下方式进行更改:
Assistance.find({
$and: [
{ "dateInterval.startDate": { $lte: inputDate } },
{ "dateInterval.endDate": { $lte: inputDate } },
],
}).then((assistances) => {
console.log(assistances.length);
});
也许这与您如何定义模型有关,或者与Mongo的连接方式有关。请加上这些代码好吗?另外,您的收藏的确切名称是什么?我相信您需要使用
$和并将查询嵌套在它中。我与Mongo的连接很好,因为我的所有其他查询都可以正常工作。当我开始使用日期时,问题就出现了。在本例中,我的收藏名称是assistances,但正如我所说,我唯一的文档是图片中显示的文档。控制器代码应该检索该文档,日志应该打印1,但它打印0,因为它没有检索任何内容。谢谢MongoDB数据库中存储在UTC datetime中的数据。@prasad_uu你是什么意思?它可以工作!!!非常感谢你!!!这有点奇怪,因为我以前在find()方法中使用过这种格式,没有问题。可能是因为$gte方法或其他原因。无论如何,谢谢!