Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

$size (operador de expressão )

$size

Conta e retorna o número total de itens em uma array.

Você pode utilizar o $size para implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

$size tem a seguinte sintaxe:

{ $size: <expression> }

O argumento para pode $size ser qualquer expressão, desde que seja resolvida em uma array. Para mais informações sobre expressões, consulte Expressões.

O argumento para deve resultar em um $size array. Se o argumento para estiver ausente ou $size $size não resultar em um array, ocorrerão erros.

Considere uma coleção inventory com os seguintes documentos:

db.inventory.insertMany( [
{ _id: 1, item: "ABC1", description: "product 1", colors: [ "blue", "black", "red" ] },
{ _id: 2, item: "ABC2", description: "product 2", colors: [ "purple" ] },
{ _id: 3, item: "XYZ1", description: "product 3", colors: [ ] },
{ _id: 4, item: "ZZZ1", description: "product 4 - missing colors" },
{ _id: 5, item: "ZZZ2", description: "product 5 - colors is string", colors: "blue,red" }
] )

A seguinte operação de agregação pipeline utiliza o operador para retornar o número de elementos $size na colors array:

db.inventory.aggregate([
{
$project: {
item: 1,
numberOfColors: { $cond: { if: { $isArray: "$colors" }, then: { $size: "$colors" }, else: "NA"} }
}
}
] )

A operação retorna o seguinte:

{ _id: 1, item: "ABC1", numberOfColors: 3 }
{ _id: 2, item: "ABC2", numberOfColors: 1 }
{ _id: 3, item: "XYZ1", numberOfColors: 0 }
{ _id: 4, item: "ZZZ1", numberOfColors: "NA" }
{ _id: 5, item: "ZZZ2", numberOfColors: "NA" }