Die Antwort wird auf Ihrer Definition von "möglichen" abhängig:
1) Aus dem Kasten: NEIN.
Wie bei MongoDB 2.2 gibt es keine Endbenutzerfunktion, mit der Sie neue Pipelineoperatoren hinzufügen können. Das Aggregationsframework und die Pipelineoperatoren sind in C++ implementiert, um die Leistung und den gemeinsamen Zugriff auf frühere Aggregationsoptionen wie MapReduce (das in JavaScript implementiert ist) zu verbessern.
2) Wenn Sie eine in C++ schreiben wollen: JA (aber nicht trivial).
MongoDB ist ein Open-Source-Projekt, so dass Sie die Möglichkeit haben, in den C++ - Code einzutauchen und zusätzliche Funktionen selbst zu implementieren (siehe: src/mongo/db/pipeline
). Beachten Sie, dass es Richtlinien zu Contributing to the MongoDB project gibt und die laufende Entwicklung äußerst aktiv ist.
Wenn Sie benutzerdefinierte Funktionen schreiben möchten, ist die beste Option im Moment, MapReduce weiter zu verwenden.
Unabhängig von den oben genannten Optionen, wenn es einen Pipeline-Operator oder eine Funktion gibt, die Sie sehen möchten, schlagen Sie sie bitte in der MongoDB Jira SERVER project (Komponente: Aggregation Framework
) vor. Dadurch können andere die Feature-Anforderung kommentieren, beobachten und abstimmen. Wenn Sie die Feature selbst implementieren, können Sie in Ihrer Pull-Anforderung auf die Jira-Feature-Beschreibung verweisen. Bevor Sie eine neue Feature-Anforderung senden, sollten Sie auch nachsehen, ob diese Funktion möglicherweise already been suggested hat.
Zum Beispiel gibt es fordert bereits, wie:
Welche Art von zusätzlichen Betreiber benötigen Sie? – Stennie
stddev, median, conditionnal operations hauptsächlich – hotips