MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

É possível fazer o mongodump dos últimos x registros de uma coleção?


mongodump não expõe totalmente as interfaces do cursor. Mas você pode contornar isso, usando o --query parâmetro.Primeiro obtenha o número total de documentos da coleção
db.collection.count()

Digamos que haja 10.000 documentos e você queira os últimos 1.000. Para isso, obtenha o id do primeiro documento que deseja despejar.
db.collection.find().sort({_id:1}).skip(10000 - 1000).limit(1)

Neste exemplo, o id era "50ad7bce1a3e927d690385ec" .Agora você pode alimentar mongodump com esta informação, para despejar todos os documentos a com id maior ou igual.
$ mongodump -d 'your_database' -c 'your_collection' -q '{_id: {$gte: ObjectId("50ad7bce1a3e927d690385ec")}}'

ATUALIZAÇÃO Os novos parâmetros --limit e --skip foram adicionados ao mongoexport provavelmente estará disponível na próxima versão da ferramenta:https://github.com/mongodb /mongo/pull/307