[MongoDB] Nettoyage de collection
Bonjour,
J'ai une MongoDB Azure qui possède plus de 2 GO de datas et ça commence à être long à requêter (et cher).
J'aimerais pouvoir faire du ménage car les messages les plus anciens ne servent pas.
J'ai un champ timestamp et un champ device_properties.deveui.
L'idéal serait de pouvoir ne garder que les derniers device_properties.deveui reçus.
Mais avant de pouvoir faire cette requête un peu compliquée, je voulais m'assurer que je pouvais supprimer des datas simplement.
J'ai donc tenté plusieurs méthode et je ne rencontre que des difficultés.
Voici quelques uns de mes tests:
Code:
1 2 3 4
| db.maColl.remove( { timestamp : {"$lt" : new Date(2019, 1, 1) } })
db.maColl.remove( { timestamp : {"$lt" : new ISODate('2018-01-01T08:15:31Z') }})
db.maColl.remove({'timestamp':/2018-12/})
db.coll.createIndex({"_ts":1}, {expireAfterSeconds: 10}) |
Et en fonction de la commande et de l'outil que j'utilise, j'ai des fois :
- Command invalid or not supported
- Request rate is large
- Cannot use 'commands' readMode, degrading to 'legacy' mode
Ou alors ça passe mais ça n'a aucun impact.
J'ai utilisé RoboMongo, l'outil web script ou Shell de Azure, j'ai des comportement différent selon l'outil. Lequel est le mieux ?