Menu Docs

Limitações de coleta de séries temporais

Os seguintes recursos não são suportados para coleções de séries temporais .

O tamanho máximo de um documento de medição é 4 MB.

Você não pode usar os estágios de pipeline de agregação $out e $merge para gerar ou mesclar coleções de séries temporais de outra coleção.

Devido à estrutura de dados única das coleções de séries temporais, o MongoDB não pode indexá-las de forma eficiente para valores diferentes. Evite usar o comando distinct ou método assistente db.collection.distinct() em coleções de séries temporais. Em vez disso, use uma agregação $group para agrupar documentos por valores distintos.

Por exemplo, para consultar valores meta.type diferentes em documentos onde meta.project = 10, em vez de:

db.foo.distinct("meta.type", {"meta.project": 10})

Usar:

db.foo.createIndex({"meta.project":1, "meta.type":1})
db.foo.aggregate([{$match: {"meta.project": 10}},
{$group: {_id: "$meta.type"}}])

Isso funciona da seguinte maneira:

  1. Criando um índice composto em meta.project e meta.type e é compatível com a agregação.

  2. O estágio $match filtra documentos onde meta.project = 10.

  3. O estágio $group usa meta.type como a chave de grupo para gerar um documento por valor exclusivo.

O tamanho máximo dos documentos em uma coleção de séries temporais é 4 MB.

A partir do MongoDB 5.0.5, você pode executar algumas operações de exclusão e atualização.

Os comandos de exclusão devem atender aos seguintes requisitos:

  • A query só pode corresponder aos valores do campo metaField.

  • O comando de exclusão não pode limitar o número de documentos a serem excluídos. Você deve usar um comando deletar com justOne: false ou o método deleteMany() .

Os comandos de atualização devem atender aos seguintes requisitos:

  • A query só pode corresponder aos valores do campo metaField.

  • O comando de atualização só pode modificar o valor do campo metaField .

  • A atualização deve ser executada com um documento de atualização que contenha somente expressões do operador de atualização.

  • O comando de atualização não pode limitar o número de documentos a serem atualizados. Você deve usar um comando de atualização com multi: true ou o método updateMany() .

  • O comando de atualização não pode definir upsert: true.

Para excluir dados antigos automaticamente, configure a remoção automática (TTL).

Para remover todos os documentos de uma collection, use o método drop() para soltar a collection.

Se uma coleção de séries temporais contiver documentos com timeField registros de data e hora anteriores a 1970-01-01T00:00:00.000Z ou posteriores a 2038-01-19T03:14:07.000Z, nenhum documento será excluído da coleção pelo recurso TTL "time to live".

Para obter detalhes sobre exclusões de TTL, consulte Expirar dados de collections configurando TTL.

Você pode adicionar índices secundários nos campos especificados como timeField e metaField. Se o valor do campo metaField for um documento, você também poderá criar índices secundários em campos dentro desse documento.

O metaField não é compatível com os seguintes tipos de índice:

Os índices secundários não são compatíveis com as seguintes propriedades de índice:

Uma coleção de séries temporais não pode ser criada como uma capped collection.

O tipo de uma collection só pode ser definido ao criar a collection:

Para mover dados de uma coleção existente para uma coleção de séries temporais, migre os dados para uma coleção de séries temporais.

Você só pode definir os parâmetros timeField e metaField de uma coleção ao criá-la. Após a criação, esses parâmetros não podem ser modificados.

Depois que o granularity é definido, ele só pode ser aumentado em um nível por vez. De "seconds" a "minutes" ou de "minutes" a "hours". Outras alterações não são permitidas. Se você precisar alterar o granularity de "seconds" para "hours", primeiro aumente o granularity para "minutes" e depois para "hours".

A partir do MongoDB 5.0.6, coleções de séries temporais fragmentadas são suportadas. Ao usar coleções de séries temporais fragmentadas, não é possível modificar o granularity de uma coleção de séries temporais fragmentadas.

Em versões anteriores ao MongoDB 5.0.6, você não pode mostrar coleções de séries temporais.

Não é possível executar comandos de administração de fragmentação em coleções de séries temporais fragmentadas.

Você não pode gravar em coleções de séries temporais em transações.

Observação

As leituras de coleções de séries temporais são suportadas em transações.

As operações de leitura em coleções de séries temporais com preocupação de leitura "snapshot" garantem o isolamento do snapshot somente na ausência de operações simultâneas de remoção ou renomeação de coleções na operação de leitura. A recriação de uma coleção de séries temporais no mesmo namespace com configuração de granularidade diferente não produz isolamento total do snapshot.