2017-09-26 1 views
0

J'ai un cas d'utilisation dans lequel un ensemble d'enregistrements d'une collection doit être supprimé après un intervalle de temps spécifié. Par exemple: Les enregistrements de plus de 10 heures sont supprimés toutes les 10 heures.Partitionnement d'enregistrements dans une collection dans MongoDB

Nous avons essayé la suppression en fonction de l'ID mais nous l'avons trouvé lent.

est-il un moyen de diviser les enregistrements dans une collection et déposez une partition en cas de besoin dans Mongo

Répondre

0

MongoDB ne supporte pas les partitions, il y a un billet JIRA pour ajouter cela comme une caractéristique (SERVER-2097) .

Une solution consiste à tirer parti de plusieurs collections temporelles, en recyclant les collections de la même manière que vous le feriez avec des partitions. Généralement, nous le ferions lorsque vous ne faites généralement qu'interroger une ou plusieurs de ces collections basées sur le temps. Si vous avez souvent besoin de lire plusieurs collections, vous pouvez ajouter du code wrapper pour simplifier cela.

Il ya aussi TTL Indexes, qui tire parti d'un thread d'arrière-plan dans le serveur mongod pour gérer les suppressions pour vous.

Vos suppressions par _id peuvent avoir été lentes pour un certain nombre de raisons, et justifient probablement plus d'investigations que votre question initiale.