Convert ObjectID zu String in Mongo Aggregation

Ich bin gerade in diesem Szenario: Ich habe eine Sammlung X:

{
  _id:ObjectId('56edbb4d5f084a51131dd4c6'),
  userRef:ObjectId('56edbb4d5f084a51131dd4c6'),
  serialNumber:'A123123',
  ...
}

Ich muss alle Dokumente aggregieren und sie nach userRef + serialNumber gruppieren, also versuche ich, concat wie folgt zu verwenden:

$group: {
        _id: {
            '$concat': ['$userRef','-','$serialNumber']
        },
       ...

So im Grunde in meiner Aggregation in MongoDB muss ich Dokumente durch die Verkettung einer ObjectId und einer Zeichenfolge gruppieren. Es scheint jedoch, dass $ concat nur Zeichenfolgen als Parameter akzeptiert:

uncaught exception: aggregate failed: {

    "errmsg" : "exception: $concat only supports strings, not OID",
    "code" : 16702,
    "ok" : 0
}

Gibt es eine Möglichkeit, eine ObjectId in einen String innerhalb eines Aggregationsausdrucks zu konvertieren?

BEARBEITE:

DiesFrag ist verwandt, aber die Lösung passt nicht zu meinem Problem. (Insbesondere, weil ich ObjectId.toString () während der Aggregation nicht verwenden kann)

Tatsächlich konnte ich in Mongos Dokumentation keine ObjectId (). ToString () -Operation finden, aber ich frage mich, ob es in diesem Fall etwas Schwieriges gibt.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage