Definición
$isArrayDetermina si el operando es un arreglo. Devuelve un valor booleano.
$isArraytiene la siguiente sintaxis:{ $isArray: [ <expression> ] }
Comportamiento
El <expression> puede ser cualquier valor válido expresión. Para obtener más información sobre expresiones, consulte Expresiones.
Ejemplo | Resultados | notas |
|---|---|---|
|
|
|
|
|
|
|
|
|
Nota
Las expresiones de agregación aceptan un número variable de argumentos. Estos argumentos se pasan normalmente como un array. Sin embargo, cuando el argumento es un solo valor, se puede simplificar el código pasándolo directamente sin incluirlo en un array.
Ejemplo
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 ordered son matrices. Si ambos campos son matrices, concatenalos:
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" ] }