在我的mongodb中有一个视频集合,其中有一个如下所示的creationTime列表,我想使用creationTime在任意两个日期之间获取记录。
"创建时间" :{ " logTime Description该条" :ISODate(" 2013-08-12T10:54:44.914Z"), " logtimeStr" :" 12-08-2013 04:24:44", "天" :12, "一个月" :8, "一年" :2013年, "小时" :16, "分钟" :24, "第二" :44 }
答案 0 :(得分:1)
编写范围查询的一种更好的方法,并且只是提到 $and
在MongoDB中是隐式的,只需要在实际需要它的特定情况下使用:< / p>
db.collection.find({
"creationTime.logtime": {
"$gt": new Date("2014-08-01"), "$lt" new Date("2014-08-13")
}
})
至少这是范围查询的理论。但目前您有一个非常大的问题,那就是您的日期实际上存储为字符串。
这是一个很大的问题,因为基本上当这些是字符串时(尤其是当前格式化它们)然后你会遇到字符串的词法比较,并且你必须在一个存在的意义上对字符串进行词法比较。 &#34;更大&#34;价值比其他。
字符串需要以&#34; year&#34;的顺序呈现。然后&#34;月&#34;那么&#34; day&#34;和两个数字表示以匹配词汇比较。你目前没有。
但是不要更改字符串,将它们更改为正确的日期类型,然后显示的查询将实际正常工作。
答案 1 :(得分:0)