Object (Documento) (Documento Aninhado)
Última atualização: 2026-10-09
Object (Documento) (Documento Aninhado)
Object é um subdocumento aninhado. O MongoDB aninha arbitrariamente fundo para modelos autodescritivos. Acesse campos aninhados via caminhos com pontos, entre aspas nas consultas, ex.: `'profile.address.city'`. Ideal para dados um-para-um (perfis de usuário, endereços de pedido); promova dados consultados separadamente ou em crescimento para sua própria coleção.
| Categoria | Tipos BSON |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ profile: { name: "alice", address: { city: "beijing" } } }
db.users.find({ "profile.address.city": "beijing" })
Retorno:O próprio documento aninhado; as consultas retornam documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// Object: grava e consulta um documento aninhado
use shop
db.users.insertOne({ profile: { name: 'alice', address: { city: 'beijing' } } })
db.users.find({ 'profile.address.city': 'beijing' })
Saída:
{ _id: ObjectId('...'), profile: { name: 'alice', address: { city: 'beijing' } } }
📌 Notas
- Caminhos com pontos acessam campos aninhados; escape chaves com pontos ou $
- Embuta para um-para-um; arrays ou coleções separadas para um-para-muitos
- $set substitui subdocumentos inteiros; caminhos com pontos atualizam campos únicos
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQuão fundo os documentos podem aninhar?
AO limite oficial de aninhamento é cerca de 100 níveis, na prática limitado primeiro pelo tamanho de 16MB do documento.
QEmbutir ou usar uma coleção separada?
AEmbuta dados um-para-um lidos com o pai; coleções separadas para dados que crescem ou são consultados independentemente.
QComo consulto campos aninhados?
AUse um caminho com pontos entre aspas: { 'profile.address.city': 'beijing' }.