Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

$isArray (operador de expresión)

$isArray

Determina si el operando es un arreglo. Devuelve un valor booleano.

$isArray tiene la siguiente sintaxis:

{ $isArray: [ <expression> ] }

El <expression> puede ser cualquier expresión válida. Para obtener más información sobre las expresiones, consulte Expresiones.

Ejemplo
Resultados
notas

{ $isArray: "hello" }

false

"hello" es un string, pasado como string.

{ $isArray: [ "hello" ] }

false

"hello" es un string, pasado como parte de un arreglo de argumentos.

{ $isArray: [ [ "hello" ] ] }

true

[ "hello" ] es un arreglo, que se pasa como parte de un arreglo de argumentos.

Nota

Las expresiones de agregación aceptan un número variable de argumentos. Normalmente, estos argumentos se pasan como un arreglo. Sin embargo, cuando el argumento es un solo valor, puedes simplificar tu código pasando el argumento directamente sin envolverlo en un arreglo.

Cree una colección llamada warehouses con los siguientes documentos:

db.warehouses.insertMany( [
{ _id : 1, instock: [ "chocolate" ], ordered: [ "butter", "apples" ] },
{ _id : 2, instock: [ "apples", "pudding", "pie" ] },
{ _id : 3, instock: [ "pears", "pecans" ], ordered: [ "cherries" ] },
{ _id : 4, instock: [ "ice cream" ], ordered: [ ] }
] )

Comprueba si los campos instock y los ordered son arreglos. Si ambos campos son arreglos, concaténalos:

db.warehouses.aggregate( [
{ $project:
{ items:
{ $cond:
{
if: { $and: [ { $isArray: "$instock" },
{ $isArray: "$ordered" }
] },
then: { $concatArrays: [ "$instock", "$ordered" ] },
else: "One or more fields is not an array."
}
}
}
}
] )
{ _id : 1, items : [ "chocolate", "butter", "apples" ] }
{ _id : 2, items : "One or more fields is not an array." }
{ _id : 3, items : [ "pears", "pecans", "cherries" ] }
{ _id : 4, items : [ "ice cream" ] }