Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

$toBool (agregação)

Nesta página

  • Definição
  • Comportamento
  • Exemplo
$toBool

Converte um valor em booleano.

$toBool tem a seguinte sintaxe:

{
$toBool: <expression>
}

O $toBool usa qualquer expressãoválida.

O $toBool é uma abreviatura para a seguinte expressão $convert:

{ $convert: { input: <expression>, to: "bool" } }

Dica

Veja também:

A tabela a seguir lista os tipos de entrada que podem ser convertidos em booleanos:

Tipo de entrada
Comportamento

Array

Retorna verdadeiro

Dados binários

Retorna verdadeiro

Boolean

Sem operação. Retorna o valor booleano.

Código

Retorna verdadeiro

Data

Retorna verdadeiro

Decimal

Returns true if not zero
Return false if zero

Double

Returns true if not zero
Return false if zero

Inteiro

Returns true if not zero
Return false if zero

JavaScript

Retorna verdadeiro

Long

Returns true if not zero
Return false if zero

Tecla máxima

Retorna verdadeiro

Chave mín.

Retorna verdadeiro

Zero

Retorna nulo

Objeto

Retorna verdadeiro

ObjectId

Retorna verdadeiro

expressão regular

Retorna verdadeiro

String

Retorna verdadeiro

Timestamp

Retorna verdadeiro

Para saber mais sobre os tipos de dados no MongoDB, consulte a página BSON Types.

A tabela a seguir lista alguns exemplos de conversão para booleana:

Exemplo
Resultados

{$toBool: false}

false

{$toBool: 1.99999}

true

{$toBool: NumberDecimal("5")}

true

{$toBool: NumberDecimal("0")}

false

{$toBool: 100}

true

{$toBool: ISODate("2018-03-26T04:38:28.044Z")}

true

{$toBool: "false"}

true

{$toBool: ""}

true

{$toBool: null}

zero

Crie uma collection orders com os seguintes documentos:

db.orders.insertMany( [
{ _id: 1, item: "apple", qty: 5, shipped: true },
{ _id: 2, item: "pie", qty: 10, shipped: 0 },
{ _id: 3, item: "ice cream", shipped: 1 },
{ _id: 4, item: "almonds", qty: 2, shipped: "true" },
{ _id: 5, item: "pecans", shipped: "false" }, // Note: All strings convert to true
{ _id: 6, item: "nougat", shipped: "" } // Note: All strings convert to true
] )

A seguinte operação de agregação na collection orders converte shipped em um valor booleano antes de localizar os pedidos não enviados:

// Define stage to add convertedShippedFlag field with the converted shipped value
// Because all strings convert to true, include specific handling for "false" and ""
shippedConversionStage = {
$addFields: {
convertedShippedFlag: {
$switch: {
branches: [
{ case: { $eq: [ "$shipped", "false" ] }, then: false } ,
{ case: { $eq: [ "$shipped", "" ] }, then: false }
],
default: { $toBool: "$shipped" }
}
}
}
};
// Define stage to filter documents and pass only the unshipped orders
unshippedMatchStage = {
$match: { "convertedShippedFlag": false }
};
db.orders.aggregate( [
shippedConversionStage,
unshippedMatchStage
] )

A operação retorna o seguinte documento:

{ "_id" : 2, "item" : "pie", "qty" : 10, "shipped" : 0, "convertedShippedFlag" : false }
{ "_id" : 5, "item" : "pecans", "shipped" : "false", "convertedShippedFlag" : false }
{ "_id" : 6, "item" : "nougat", "shipped" : "", "convertedShippedFlag" : false }

Observação

Se a operação de conversão encontrar um erro, a operação de aggregation interromperá e exibirá um erro. Para substituir esse comportamento, use $convert em vez disso.

Voltar

$tanh