Boolean
é um tipo de campo nativo em BSON
(formato de armazenamento do lado do servidor do MongoDB, também conhecido como "JSON binário"). Booleanos usam menos armazenamento do que um inteiro ou string e evitam quaisquer efeitos colaterais inesperados de comparação. Por exemplo, em um MongoDB
find()
consultar uma string de "1"
não corresponderá a um valor numérico de 1
ou um valor booleano de true
. Se você deseja armazenar valores booleanos, use definitivamente um tipo booleano. Comparando o tamanho do BSON (em bytes) no
mongo
shell para completude:// Number (JavaScript double) - 8 bytes
> var foo = { a: 1 }
> Object.bsonsize(foo)
16
// UTF-8 String - 6 bytes
> var foo = { a: '1'}
> Object.bsonsize(foo)
14
// 32-bit int - 4 bytes
> var foo = { a: NumberInt(1)}
> Object.bsonsize(foo)
12
// Boolean - 1 byte
> var foo = { a: true}
> Object.bsonsize(foo)
9
Observação:o tamanho base do objeto JSON nos exemplos acima (sem contar os valores do campo) é de 8 bytes, portanto, a diferença entre o
Object.bsonsize()
relatado é a representação do valor do campo.