MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como devo armazenar valores booleanos no mongodb?


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.