gpt4 book ai didi

javascript - Mongo查询带日期的json对象

转载 作者:行者123 更新时间:2023-12-03 00:08:59 24 4
gpt4 key购买 nike

我尝试动态创建带有日期的 mongo 查询。

这是我生成的 JSON 查询的一部分:

{"$or":[{"createdAt":{"$gte":"2017-08-31T22:00:00.000Z"}},{"modifiedAt":{"$gte": “2017-08-31T22:00:00.000Z”}}]}

但是它不起作用。

这是其背后的代码的一部分:

let result = {$or: [{createdAt: {$lte: new Date(date)}}, {modifiedAt: {$lte: new Date(date)}}]};

花了3个小时试图找到解决方案。我的理解是,这里的 $lte 尝试将 mongo 日期对象与描述 ISO 格式日期的字符串进行比较。而且效果不佳。

我不知道如何创建一个正确的 JSON 对象作为包含日期的 mongo 查询。

请帮忙! :-)

最佳答案

如果你想查询 Mongo 的日期范围,你必须使用标准日期格式(ISO-8601)。要实现这一点,请尝试使用 moment:

        let date ="2019-02-22"; //for example, in my apis, you can set multiple type of date (YYYY-MM-DD, YYYYMMDD, DD-MM-YYYY,..) but date format with / is forbidden.
let query = {$or:[{createdAt: {$lte: moment(date).format()}}, {modifiedAt:{$gte: moment(date).format()}}] //pass parameter to format, in this case it will use the default locale format

就像这样,您正在设置一个查询。 IMO 使用“OR”条件查询日期范围是没有用的:通常,日期查询是“AND”条件(如果您查询单个日期,您的查询将是:大于今天或小于今天 -> 所有)

关于javascript - Mongo查询带日期的json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54830193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com