MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Est-il possible de mongodumper les x derniers enregistrements d'une collection ?

mongodump n'expose pas entièrement les interfaces du curseur. Mais vous pouvez contourner ce problème en utilisant le --query paramètre.D'abord obtenir le nombre total de documents de la collection

db.collection.count()

Disons qu'il y a 10000 documents et que vous voulez les 1000 derniers. Pour ce faire, obtenez l'identifiant du premier document que vous voulez vider.

db.collection.find().sort({_id:1}).skip(10000 - 1000).limit(1)

Dans cet exemple, l'identifiant était "50ad7bce1a3e927d690385ec" .Maintenant, vous pouvez alimenter mongodump avec ces informations, pour vider tous les documents avec un identifiant supérieur ou égal.

$ mongodump -d 'your_database' -c 'your_collection' -q '{_id: {$gte: ObjectId("50ad7bce1a3e927d690385ec")}}'

MISE À JOUR Les nouveaux paramètres --limit et --skip ont été ajoutés à mongoexport sera probablement disponible dans la prochaine version de l'outil :https://github.com/mongodb /mongo/pull/307