繁体   English   中英

是否可以在MongoDB中解析查询以获得更具体的结果?

[英]Is it possible to parse Queries in MongoDB to get more specific results?

我想在mongoDb中获得大于2:00且小于8:00的时间。 但是,我的数据如下所示:

{“时间”:“ 4:35”}

冒号使我无法查询“ db.collection.find({time:{$ gt:2,$ lt:8}})”这样的查询方法吗? (也许在不更改内部数据的情况下将4:35解析为435)

如果您只想搜索2到8之间的时间,则可以尝试以下操作:

db.collection.find( { time: { $gt: "2:00", $lt: "8:00" } } )

这就是我所做的测试。 我向集合中插入了一些数据,这是列表:

db.time.find({},{“ _ id”:0})
{“ mytime”:“ 4:35”}
{“ mytime”:“ 1:35”}
{“ mytime”:“ 6:35”}
{“ mytime”:“ 8:35”}
{“ mytime”:“ 10:35”}
{“ mytime”:“ 10:10”}

db.time.find({mytime:{$ gt:“ 2:00”,$ lt:“ 8:00”}},{“ _id”:0})
{“ mytime”:“ 4:35”}
{“ mytime”:“ 6:35”}

将时间存储为字符串不是一个好主意。 不幸的是,MongoDB没有专用的仅时间数据类型,但是有两种选择不如使用字符串那么糟糕:

  1. 使用BSON日期。 当存储年,月和日会适得其反时,请将所有这些设置为相同的值(可以选择从1970年1月1日开始)。
  2. 使用整数,并使其代表自午夜以来的分钟数或秒数。 在应用程序层上进行转换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM