MongoDB - Das argument $Größe muss ein Array sein, aber war der Typ: EOO / fehlt
Versuchen, um eine MongoDB-Datenquelle mit icCube. Die Idee ist, zur Rückgabe der Größe eines Arrays als neues Feld. So etwas wie :
$project:
{
"people": 1,
"Count myFieldArray" : {$size : "$myFieldArray" }
}
Aber ich bin immer für einige Datensätze die folgende Fehlermeldung :
The argument to $size must be an Array, but was of type: EOO
Gibt es eine Möglichkeit, die Größe ist 0, wenn das Feld leer ist oder nicht, ein array (das loswerden der Fehler) ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
$ifNull
Betreiber hier. Es scheint, das Feld ist entweder nicht für ein array oder nicht vorhanden der Fehler:Auch möchten Sie vielleicht zu prüfen, die
$type
in Ihrem$match
falls diese nicht existieren, sind aber nicht ein array.$ifNull
vorhanden ist. Der gleiche VORBEHALT gilt für Operatoren wie$unwind
wo Sie müssen vorsichtig sein, dass das array nicht leer ist oder fehlt sonst werden Sie resultieren entweder in der Beseitigung des übergeordneten Dokuments oder produziert eine ähnliche Fehlermeldung.Alternative Lösung wäre, zu beseitigen, die Dokumente mit Nullen mit
Auch Dokument-Felder, die als Argumente verwendet, um $size durch ' $ ' - Verweis (hier: "$myFieldArray") muss auch der Teil der Projektionen.