Arrays y subdocumentos

Consulta dentro de arrays y de documentos anidados.

Consulta dentro de arrays y de documentos anidados con la notación de punto y $elemMatch, como en MongoDB.

Requisitos

  • Una conexión con un usuario que tenga read sobre la base.

Un campo anidado

JavaScript
db.clientes.find({ "direccion.ciudad": "Valencia" });

Un elemento de un array que cumple varias condiciones

JavaScript
db.pedidos.find({ lineas: { $elemMatch: { producto: "café", cantidad: { $gte: 2 } } } });

Un array que contiene todos los valores

JavaScript
db.productos.find({ etiquetas: { $all: ["eco", "oferta"] } });

Comprobar

Cada consulta devuelve solo los documentos cuyo array o subdocumento cumple la condición, enteros salvo que uses una proyección.

Problemas frecuentes

  • Una condición sobre dos campos de un array sin $elemMatch puede cumplirse con elementos distintos del array.

Ver también