sql >> Databasteknik >  >> NoSQL >> MongoDB

Är det möjligt att mongodumpa de sista x posterna från en samling?

mongodump exponerar inte markörgränssnitten helt. Men du kan kringgå det genom att använda --query parameter.Få först det totala antalet dokument i samlingen

db.collection.count()

Låt oss säga att det finns 10 000 dokument och du vill ha de sista 1 000. För att göra det får du ID:t för det första dokumentet du vill dumpa.

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

I det här exemplet var ID:t "50ad7bce1a3e927d690385ec" .Nu kan du mata mongodump med denna information, för att dumpa alla dokument a med högre eller lika id.

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

UPPDATERA De nya parametrarna --limit och --skip lades till i mongoexport kommer förmodligen att finnas tillgänglig i nästa version av verktyget:https://github.com/mongodb /mongo/pull/307



  1. Sök i MongoDB i en array och sortera efter antal matchningar

  2. Returnera endast specifika fält från underdokument för projektionsmatris

  3. Hur konfigurerar jag mongodb för att ta bort gamla loggfiler?

  4. Ansluter du direkt till Redis med (klientsidan) javascript?