gpt4 book ai didi

MongoDB 未按最小日期查找记录

转载 作者:可可西里 更新时间:2023-11-01 09:37:45 26 4
gpt4 key购买 nike

我在 Mongo 中有以下对象:

{
"end" : new Date("Fri, 31 Dec 9999 23:59:59 GMT +00:00"),
"start" : new Date("Mon, 01 Jan 0001 00:00:00 GMT +00:00"),.....
}

我想根据今天的日期返回记录:

 {"start" : {"$lt" : new Date()}, "end": {"$gt" : new Date()}}

这不会返回任何内容。

我试过只使用开始日期:

 {"start" : {"$lt" : new Date()}}

这不会返回任何内容。但是,这确实有效:

 {"start" : {"$gt" : new Date()}}

同样,在 end 字段上使用 $lt 不会产生任何结果,但 $gt 会产生结果。

关于为什么会出现这种行为有什么想法吗?

最佳答案

旧版本的 MongoDB 在 Unix 纪元(1970 年 1 月 1 日)之前的日期存在问题;跨越纪元边界的查询不会返回正确的结果。

有一个 thread on the newsgroup关于这个话题。

底线:您应该使用版本 >= 2.0 的二进制文件并运行

db.yourCollection.reIndex() 

这将修复您的索引。请记住,对庞大的集合重新编制索引可能会花费很多时间。

关于MongoDB 未按最小日期查找记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300128/

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