我有一个看起来像这样的MongoDB文档集合:
{
...
"doc_date": ISODate("2018-03-29T00:00:00.000Z"),
...
}
如何给定日期(假设时间始终为00:00:00.000),如何使用C ++(非传统性)MongoDB API查询该文档?也就是说,我想做类似的事情:
void my_func(std::string date_to_query) {
auto result = mongo_collection.find_one(document{}
<< "doc_date" << date_to_query
<< finalize); // This obviously doesn't work
// ...
}
my_func("2018-03-29");
在给定日期字符串的情况下按日期在Mongo中查找文档的正确查询是什么?
答案 0 :(得分:0)
将日期作为字符串给出,将其转换为代表一天开始的std::chrono
类型,并从中构造两个bsoncxx::b_date
对象,它们在该天的UNIX时间段内,然后使用$gt
和$lt
(根据包含性/排除性边界的需要进行调整)来构造查询。
有关某些示例,请参见:Find objects between two dates MongoDB
对于聚合框架,可能还有更聪明的方法。