2016-03-30 1 views
1

У меня есть этот запрос, но i'm получаю ошибку синтаксиса: неожиданный идентификаторИспользование 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 

, что это может быть не так?

+1

попробуйте использовать «created_at» – jmugz3

+0

@ jmugz3 Было немного не так, как неправильное использование «цитирования» внутри строки аргумента, так как есть явные ошибки использования для исправления, а также что-то, что обычно не понято о запросе с «датами», , –

ответ

3

В запросах с mongoexport необходимо использовать "extended json". Таким образом, способ указывать «даты» с $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 и "" вокруг внутренних выражений и значения. Он имеет важный, что эти типы кавычек разные, а также «аргументы оболочки» должны иметь свои «внешние» кавычки как '', иначе «оболочка» пытается оценить содержащееся выражение.

+0

Спасибо, человек, только начинающий здесь, с монгодбом, как видите. В любом случае этот формат также вызывает непредвиденную ошибку. Возможно ли изменить формат даты на эпоху UNIX? mongoexport --db ium - события сборки --query '{"created_at": {$ gte: {"$ date": 2016-03-01T00: 00: 00.001Z "}}," name ": "UPDATE_SUCCESS"} '--out guille_test.json –

+0

@ Guillermo-Casco Ошибка заключается в том, что вы все еще пропускаете котировки вокруг значения до '' $ date ". Здесь' 2016-03-01T00: 00: 00.001Z " см. отсутствующий символ '' 'перед датой. Все, что вам нужно сделать, это скопировать/вставить то, что указано в ответе, поскольку это прямой перевод того, что вы пытались в своем вопросе, но без ошибок формата в сформированном JSON. –

Смежные вопросы