我在MongoDB中插入了一个文档,如:
db.test.insert({date:20150101});
当我尝试使用db.test.find({date:"20150101"})
进行搜索时(带双引号的日期字符串),未返回任何结果。
只有当我使用db.test.find({date:20150101})
时,它才会返回结果。看来MongoDB会严格比较日期值。
有什么方法可以用双引号版本或数字版本搜索它吗?
答案 0 :(得分:0)
我会将返回的结果转换为字符串,然后使用您喜欢的编程语言将其与给定值进行比较。
请注意,在{date:20150101}
中,该值实际上是整数而不是日期。
答案 1 :(得分:0)
您可以触发像这样的查询
mongo test --eval "function convert(d){ return new Date(d.substring(0,4)+'/'+d.substring(4,6)+'/'+d.substring(6,8)); }; var c = db.test.find({ a : convert('20150101') }); while(c.hasNext()){ printjson(c.next()); }"
只需将{20150101'作为convert
来电的参数替换为您想要的字符串日期