2016-10-07 2 views
0

Я хочу экспортировать проекцию коллекции в соответствии с запросом, синтаксис я использую для выполнения mongoexport является:Запрос на Mongoexport

./mongoexport -d myDB -c myCollection -q "myQuery" -o output.json 

Я попытался использовать этот фильтр в Монго оболочки, но я могу» формат т правильно, так что это законно стоять «myQuery»:

{ 
    'run.session.game._id':'gameId1', 
    'run.session.device._id':{$in:['value1','value2']}, 
    'createdAt':{ 
     $gte:ISODate('2016-06-05T15:14:22.163Z'), 
     $lte:ISODate('2017-06-05T15:14:22.163Z') 
    } 
} 

это работает, если у меня есть только первый фильтр, но как только я ставлю в строке 2 для идентификатора устройства, я получаю сообщение об ошибке , сообщения об ошибке выглядит следующим образом:

2016-10-07T22:54:02.333+0200  
error validating settings: query '[123 39 114 117 110 46 115 101 115 
115 105 111 110 46 103 97 109 101 46 95 105 100 39 32 58 32 39 90 71 
120 88 109 104 100 66 69 83 39 44 39 114 117 110 46 115 101 115 115 105 
111 110 46 100 101 118 105 99 101 46 95 105 100 39 58 123 58 91 79 98 
106 101 99 116 73 100 40 39 101 104 55 73 77 117 112 107 52 112 39 41 
93 125 125]' is not valid JSON: invalid character ':' looking for 
beginning of object key string 
2016-10-07T22:54:02.333+0200 try 'mongoexport --help' for more 
information 

Пожалуйста, помогите :( Я знаю, что есть что-то о запросе должен находиться в строгом формате JSON, но я не знаю, как преобразовать его ...

ответ

0

от mongoexport documentation:

Вы должны заключить запрос в одинарные кавычки (например, '), чтобы гарантировать, что он не взаимодействует со средой оболочки.

Так попытайтесь переключить свои " «S и '» s таким образом:

./mongoexport -d myDB -c myCollection -q '{ 
    "run.session.game._id":"gameId1", 
    "run.session.device._id":{$in:["value1","value2"]}, 
    "createdAt":{ 
     $gte:ISODate("2016-06-05T15:14:22.163Z"), 
     $lte:ISODate("2017-06-05T15:14:22.163Z") 
    } 
}' -o output.json 
+0

Большое спасибо: D это сработало –

0

кажется вам не хватает : после оператора $in Попробуйте использовать:.

'run.session.device._id':{$in:['value1','value2']} 
+0

Спасибо за ваш ответ, я попытался с „:“ сейчас, но она по-прежнему дает мне ту же ошибку: ( –