如何在MongoDB中启用松散类型搜索

时间:2015-05-20 19:11:48

标签: mongodb double-quotes

我在MongoDB中插入了一个文档,如:

db.test.insert({date:20150101});

当我尝试使用db.test.find({date:"20150101"})进行搜索时(带双引号的日期字符串),未返回任何结果。

只有当我使用db.test.find({date:20150101})时,它才会返回结果。看来MongoDB会严格比较日期值。

有什么方法可以用双引号版本或数字版本搜索它吗?

2 个答案:

答案 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来电的参数替换为您想要的字符串日期