Tail Mongodb

A opção de cursos tailable do mongodb, funciona parecido com o tail -f do linux, porém não podemos usar ela em qualquer coleção, a coleção precisa ter a opção capped: true, o que significa que ela terá um tamanho máximo fixo, removendo documentos antigos para inserir novos.

Criando uma colection capped

db.createCollection("tail", {capped: true, size: 1})

Com esse comando criamos uma coleção capped, com tamanho de 1 byte, podemos também colocar a opção max que seta a quantidade máxima de documentos na coleção.

In action

asciicast

cur = db.tail.find({}).addOption(DBQuery.Option.tailable).addOption(DBQuery.Option.awaitData) Note que usei a função find normalmente, porém, adicionei duas opções ao cursor

  • DBQuery.Option.tailable: quarante que o cursor não ira fechar depois que receber os documentos;
  • DBQuery.Option.awaitData: informa ao cursor para esperar o novo documento e ficar parado.

oplog: It’s kind of magic

Quando o servidor esta em um cluster ou é iniciado com --master ele utiliza duas coleções interessantes:

  • local.oplog.$main: quando iniciado com --master
  • local.oplog.rs: quando esta em cluster

asciicast

Chat

Pequeno chat que demostra como podemos utilizar essa opção do mongodb.

comments powered by Disqus