English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Conjunto fixoÉ um conjunto circular de tamanho fixo, que segue a ordem de inserção para suportar operações de criação, leitura e exclusão de alta performance. Circular significa que quando o tamanho fixo alocado para o conjunto se esgotar, ele começará a excluir os documentos mais antigos do conjunto sem fornecer qualquer comando explícito.
Se a atualização causar o aumento do tamanho do documento, limite as atualizações dos documentos. Como os conjuntos fixos armazenam os documentos em ordem de armazenamento no disco, eles garantem que o tamanho do documento não aumente o tamanho alocado no disco. Os conjuntos fixos são mais adequados para armazenar informações de log, dados de cache ou qualquer outro grande volume de dados.
Para criar um conjunto com limite superior, usamos o comando createCollection comum, mas comcapped
Opção definida comotrue
e especificar o tamanho máximo do conjunto (em bytes).
>db.createCollection("cappedLogCollection",{capped:true,size:10000})
Além do tamanho do conjunto, também podemos usarmax
Parâmetro-Limitar o número de documentos no conjunto restrito-
>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000)
Para verificar se o conjunto está limitado, use o seguinteisCapped
Comando-
>db.cappedLogCollection.isCapped()
Se houver um plano para convertê-lo em um conjunto existente com limite superior, você pode usar o seguinte código para lidar com isso-
>db.runCommand({"convertToCapped":"posts",size:10000})
Este código convertirá nossa coleção existenteposts
para coleções limitadas.
Por padrão, as consultas de busca em coleções limitadas mostram os resultados na ordem de inserção. No entanto, se você desejar recuperar documentos em ordem inversa, usesort
Os comandos mostrados no seguinte código-
>db.cappedLogCollection.find().sort({$natural:-1)
Há outros pontos importantes sobre coleções limitadas-
Não podemos excluir documentos de coleções limitadas.
Não há índice padrão em coleções limitadas, nem mesmo no campo _id.
Ao inserir novos documentos, o MongoDB não precisa realmente encontrar um local no disco para armazenar o novo documento. Ele pode inserir o novo documento cego no final da coleção. Isso torna as operações de inserção na coleção muito rápidas.
Da mesma forma, ao ler documentos, o MongoDB retorna os documentos na mesma ordem que estão no disco. Isso torna as operações de leitura muito rápidas.