Используйте mongoexport с --query для ISODate
У меня есть этот запрос, но я получаю синтаксическую ошибку: неожиданный идентификатор
mongoexport --db ium --collection events \
--query 'db.events.find({'created_at' : {
$gte: ISODate("2016-03-01T00:00:00.001Z"),
$lte: ISODate("2016-03-29T23:59:59:59.000Z")
},
"name" : "UPDATE_SUCCESS"})' \
--out guille1_test.json
что может быть не так?
2 ответа
Вам нужно использовать "расширенный JSON" в запросах с mongoexport. Таким образом, способ указать "даты" с $date
вместо. И --query
это просто "строка запроса" в формате JSON. Не вся команда введена в оболочку:
mongoexport --db ium --collection events \
--query '{
"created_at": {
"$gte": { "$date": "2016-03-01T00:00:00.001Z" },
"$lte": { "$date": "2016-03-29T23:59:59.000Z" }
},
"name": "UPDATE_SUCCESS"
}' \
--out guile1_test.json
Обратите также внимание на исправленную строку даты в $lte
аргумент и, конечно, "цитирование" использования ''
вокруг тела аргумента JSON и ""
вокруг внутренних выражений и ценностей. Важно, чтобы эти типы кавычек были разными, а "аргументы оболочки" должны иметь свои "внешние" кавычки как ''
в противном случае "shell" пытается оценить содержащееся в нем выражение.
Другое рабочее решение - использование new Date()
конструктор, как описано в руководстве MongoDB. Это приведет к уменьшению площади тела запроса, например:
mongoexport --db ium --collection events \
--query '{
"created_at": {
"$gte": new Date("2016-03-01T00:00:00.001Z"),
"$lte": new Date("2016-03-29T23:59:59.000Z")
},
"name": "UPDATE_SUCCESS"
}' \
--out guile1_test.json
Этот подход работал для меня из коробки, в то время как все другие альтернативы потерпели неудачу. Здесь есть относительная статья, описывающая этот подход.
Лучший способ добиться этого: Потому что новые Date и IOSDate будут недопустимыми литералами для этой команды.
Для удаленного хоста
mongoexport --host {{host}} --username {{username}} --password {{passord}} --authenticationDatabase admin --db {{Database}} --collection {{collection Name}} --query '{ "date" : { "$gt" : {"$date":"2019-10-31T00:00:00.000Z"} } }' --type json --out {{path of directory where you would want to export file.}}
Для локального хоста
mongoexport --db {{Database}} --collection {{collection Name}} --query '{ "date" : { "$gt" : {"$date":"2019-10-31T00:00:00.000Z"} } }' --type json --out {{path of directory where you would want to export file.}}