Я создал задание CRON, которое берет резервную копию базы данных каждый день.Синтаксис сложного MongoDB в Linux Сценарий оболочки
Сценарий имеет команду Mongodump с условием сброса записей, которые составляют 7 дней.
Сценарий работает нормально, пока я не добавил параметр --query
в команду mongodump
.
mongodump [host, port and dbparams] --query "{_id: {\$lt: ObjectId(Math.floor(new Date(Date.now() - 86400000*7)/1000).toString(16) + '0000000000000000')}}"
Ошибка, брошенный из-за --query
, в котором говорится:
assertion: 16619 code FailedToParse: FailedToParse: Expecting quoted string: offset:21
Так что правильный способ интегрировать этот запрос в сценарии?
Использует '' $ lt'' вместо '\ $ lt' help? – OneOfOne
@OneOfOne Nope, '' $ lt'' без '' \ ''дает ошибку'' Первый символ в поле должен быть [A-Za-z $ _]: offset: 7''. Я добавил '' \ '', чтобы избежать' ''. –