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.

$documents (estágio de agregação )

$documents

Novidades na versão 6.0.

Retorna documentos literais de valores de entrada.

O estágio $documents tem a seguinte forma:

{ $documents: <expression> }
  • Você só pode usar $documents em um agregação pipeline em nível de banco de dados.

  • Você deve usar $documents como o primeiro estágio de um pipeline de agregação .

Veja abaixo exemplos de uso.

$documents aceita qualquer expressão válida que se resolva em uma array de objetos. Isso inclui:

  • variáveis do sistema, como $$NOW ou $$SEARCH_META

  • $let expressões

  • variáveis no escopo de expressões $lookup

As expressões que não determinam um documento atual, como $myField ou $$ROOT, resultarão em um erro.

Crie dados de teste e depuração para um estágio de pipeline sem criar coleções de teste.

db.aggregate( [ { $documents: [ { x: 10 }, { x: 2 }, { x: 5 } ] }, { $bucketAuto: { groupBy: "$x", buckets: 4 } } ])

A expressão de agregação não especifica uma coleção. Ela usa os dados de entrada destacados no estágio $documents como entrada para o estágio $bucketAuto.

[ { _id: { min: 2, max: 5 }, count: 1 }, { _id: { min: 5, max: 10 }, count: 1 }, { _id: { min: 10, max: 10 }, count: 1 }]

Correlacione documentos em uma coleção com outros dados usando $documents para modificar a saída $lookup.

Crie a coleção locations.

db.locations.insertMany( [ { zip: 94301, name: "Palo Alto" }, { zip: 10019, name: "New York" } ] )

Use $documents como fonte de dados para transformar os documentos.

db.locations.aggregate( [ { $match: {} }, { $lookup: { localField: "zip", foreignField: "zip_id", as: "city_state", pipeline: [ { $documents: [ { zip_id: 94301, name: "Palo Alto, CA" }, { zip_id: 10019, name: "New York, NY" } ] } ] } } ] )

A saída correlaciona os dados na coleção locations com os valores no estágio de pipeline $documents.

[ { _id: ObjectId("618949d60f7bfd5f5689490d"), zip: 94301, name: 'Palo Alto', city_state: [ { zip_id: 94301, name: 'Palo Alto, CA' } ] }, { _id: ObjectId("618949d60f7bfd5f5689490e"), zip: 10019, name: 'New York', city_state: [ { zip_id: 10019, name: 'New York, NY' } ] }]
  • O campo zip corresponde ao campo zip_id

  • O parâmetro as cria um novo campo de saída

Para obter detalhes sobre subqueries que usam a $lookup sintaxe, consulte Subqueries correlacionadas usando sintaxe concisa.