Экспорт документов mon go с фильтром datetime - PullRequest
0 голосов
/ 04 августа 2020

Мои документы организованы следующим образом:

{
        "_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
                ]
        }
}

Мне нужно «монгоэкспорт» всех документов с той же датой, поэтому мне нужен запрос, который вырезает HH: MM: SS из метки времени поле, спасибо за уделенное время!

Ответы [ 3 ]

1 голос
/ 04 августа 2020

Чтобы экспортировать документы только в определенный день, используйте операторы $ gt и $ lt и аргумент --query в mongoexport следующим образом:

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" } } }'
0 голосов
/ 24 августа 2020

это работает для меня удаленно в контейнер docker с mon go: 4.2.6

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
0 голосов
/ 04 августа 2020

from_date = ISODate("2018-02-01T00:00:00Z") начало дня

to_date = ISODate("2018-02-01T23:59:59Z") конец дня

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

Вы можете указать что-то подобное в своем запросе, чтобы вернуть все элементы между этими двумя даты

...