gpt4 book ai didi

mongodb - 使用 mongoDB 查询日期或时间

转载 作者:可可西里 更新时间:2023-11-01 10:44:47 24 4
gpt4 key购买 nike

我有一个包含具有 start_time 和 end_time 属性的文档的集合。文件结构如下:

{
_id "4e9650ed1d41c811bc000000"
bid 31.0
start_time 2011-04-04 09:30:00 UTC
volume 31.0
end_time 2011-04-04 09:59:59 UTC
ask 0.0
price 1329.75
}

我希望能够将日期字段拆分为日期和时间组件,并分别查询每个组件。一个示例查询是:

获取(9:00 到 9:30)和(2011-04-04 到 2011-05-04)之间的所有文件

最佳答案

如果存储额外的非规范化字段的空间不是问题,并且您处于应用程序的设计部分(因此您不必回来修改现有数据),您可以:

  • 将开始时间和结束时间存储为附加属性以保留小时/分钟。
  • start_time, start_hourend_time, end_hour 上应用复合索引,以便您的搜索性能良好。
  • 对所有四个字段运行查询。

查看示例文档:

{ 
_id: "4e9650ed1d41c811bc000000",
bid: 31.0,
start_time: 2011-04-04 09:30:00 UTC,
start_hour: "09:30:00", // new field
volume: 31.0,
end_time: 2011-04-04 09:59:59 UTC,
end_hour: "09:59:59", // new field
ask: 0.0 ,
price 1329.75
}

您的问题的答案似乎是您无法在查询中有效地分离日期和时间的组成部分,例如利用索引来加速查询。

我上面的建议需要稍微更改您的架构才能实现您的需要。似乎在每个文档上牺牲几个额外的字节和微小的代码更改会得到很大的返回。

如果您有现有数据,您可以运行 Map/Reduce 将组件分离到一个新集合中,并在以后使用该新集合。

希望对您有所帮助。

关于mongodb - 使用 mongoDB 查询日期或时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7829496/

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