gpt4 book ai didi

c# - Mongo 'find' 方法不适用于 DateTime.MinValue

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

我正在使用 Mongo 2.2.3.3 C# 驱动程序将一些日期 字段作为元数据写入 GridFS。极端情况是 DateTime.MinValue。这表示为 Date(-62135596800000),表示自 1970 年 1 月 1 日 (mongo doc) 以来的毫秒数,即 new DateTime(1970,1,1).AddMilliseconds (-62135596800000) 在 C# 语法中。到目前为止一切都很好。

当查询不同的日期值 db.fs.files.distinct("metadata.lastWriteTimeUtc") 时,我在 ISODate("yyyy -MM-ddTHH:mm:ss.fffZ")格式。然而,当试图查询极端​​情况时......

检查是否相等(以下均无)不起作用:

db.fs.files.find({"metadata.lastWriteTimeUtc": Date(-62135596800000)})
db.fs.files.find({"metadata.lastWriteTimeUtc": Date("0001-01-01T00:00:00") })
db.fs.files.find({"metadata.lastWriteTimeUtc": Date("0001-01-01T00:00:00") })
db.fs.files.find({"metadata.lastWriteTimeUtc": ISODate("0001-01-01T00:00:00.000Z") })
db.fs.files.find({"metadata.lastWriteTimeUtc": ISODate("0001-01-01T00:00:00Z") })
db.fs.files.find({"metadata.lastWriteTimeUtc": ISODate("0001-01-01") })

比较另一个值不适用于日期构造函数

db.fs.files.find({"metadata.lastWriteTimeUtc": {$lt: Date(0)}  })

但它与 ISODate 一样

db.fs.files.find({"metadata.lastWriteTimeUtc": {$lt: ISODate("1970-01-01T00:00:00.000Z")}  })

比较方法是一种解决方法,我不喜欢它。任何人都知道为什么 distinct 方法找到 DateTime.MinValuefind 没有?

最佳答案

你需要添加new

db.fs.files.find({"metadata.lastWriteTimeUtc": new Date(-62135596800000)})
db.fs.files.find({"metadata.lastWriteTimeUtc": new Date(0)})
db.fs.files.find({"metadata.lastWriteTimeUtc": new Date("0001-01-01T00:00:00") })

关于c# - Mongo 'find' 方法不适用于 DateTime.MinValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38053557/

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