Umwandle einen String in eine Zahl in der MongoDB-Projektion

Ich verfüge über eine Sammlung von Dokumenten mit einem Wert, von dem bekannt ist, dass er eine Zahl ist, der jedoch als Zeichenfolge gespeichert ist. Es liegt außerhalb meiner Kontrolle, den Typ des Feldes zu ändern, aber ich möchte dieses Feld in einer Aggregation verwenden (zum Beispiel, um es zu mitteln).

Es scheint, dass ich vor dem Gruppieren eine Projektion verwenden sollte, und in dieser Projektion das Feld nach Bedarf konvertieren. Ich kann die Syntax scheinbar nicht richtig verstehen - alles, was ich versuche, gibt mir entweder NaN, oder das neue Feld fehlt einfach im nächsten Schritt der Aggregation.

$project: {
    value: '$value',
    valueasnumber: ????
}

Geben Sie das sehr einfache obige Beispiel an, in dem der Inhalt von $ value in allen Dokumenten vom Typ string ist, aber zu einer Zahl analysiert wird. Was kann ich tun, um valueeasnumber zu einem neuen (nicht vorhandenen) Feld vom Typ double mit dem zu machen? geparste Version von $ value drin?

Ich habe Dinge wie die folgenden ausprobiert (und ungefähr ein Dutzend ähnlicher Dinge):

{ $add: new Number('$value').valueOf() }
new Number('$value').valueOf()

Bin ich bellen den falschen Baum ganz? Jede Hilfe wäre sehr dankbar!

(Um 100% klar zu sein, wie ich das neue Feld verwenden möchte).

$group {
    score: {
        $avg: '$valueasnumber'
    }
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage