使用日期时间过滤器导出 mongo 个文档

Export mongo documents with datetime filter

我的文档是这样组织的:

{
        "_id" : ObjectId("5ea79b5da8d460059a5f58eb"),
        "direction" : 0,
        "metrictimestamp" : ISODate("2018-02-01T02:59:55Z"),
        "odometer" : 19030291,
        "routecode" : 0,
        "speed" : 0,
        "deviceid" : 8155064,
        "vehicleid" : 34489,
        "location" : {
                "type" : "Point",
                "coordinates" : [
                        -3.878595,
                        -38.533493
                ]
        }
}

我需要“mongoexport”所有具有相同日期的文档,所以我需要一个从 metrictime 戳字段中删除 HH:MM:SS 的查询,感谢您的宝贵时间!

from_date = ISODate("2018-02-01T00:00:00Z") 一天开始

to_date = ISODate("2018-02-01T23:59:59Z") 一天结束

$date: {"$gte": from_date, "$lt": to_date}

您可以在查询 return 这两个日期之间的所有项目时使用类似的内容

要仅在特定日期导出文档,请使用 $gt 和 $lt 运算符以及 mongoexport 上的 --query arg,如下所示:

https://docs.mongodb.com/v4.2/reference/program/mongoexport/#cmdoption-mongoexport-query

mongoexport -d=dbname -c=collection -q='{ "metrictimestamp": { "$gte": { "$date": "2018-02-01T00:00:00Z" }, "$lt": { "$date": "2018-02-02T00:00:00Z" } } }'

这对我使用 mongo:4.2.6

远程访问 docker 容器有效
mongoexport -h mongodb:27017 --authenticationDatabase=admin -u username -p password -d database -c collection -q {"metrictimestamp": { "$gte": { "$date": "2020-08-03T00:00:00.000Z" }, "$lt": { "$date": "2020-08-09T23:59:59.999Z" } } } --fields=somefield1,somefield2 --type=csv --out=/archive.csv