La risposta dipenderà dalla vostra definizione di "possibile":
1) Fuori dalla scatola: NO.
Come in MongoDB 2.2 non vi è alcuna funzione per l'utente finale che consente di aggiungere nuovi operatori di pipeline. Il framework di aggregazione e gli operatori di pipeline sono implementati in C++ per migliorare le prestazioni e la concorrenza rispetto alle precedenti opzioni di aggregazione come MapReduce (implementato in JavaScript).
2) Se si desidera scrivere uno in C++: SÌ (ma non banale).
MongoDB è un progetto open source, quindi è possibile immergersi nel codice C++ e implementare autonomamente funzionalità aggiuntive (vedere: src/mongo/db/pipeline
). Si noti che ci sono linee guida su Contributing to the MongoDB project e lo sviluppo continuo è estremamente attivo.
Se si desidera scrivere funzioni personalizzate, l'opzione migliore al momento è continuare a utilizzare MapReduce.
Indipendentemente dalle opzioni di cui sopra, se è presente un operatore di pipeline o una funzione che si desidera vedere, si consiglia di suggerirla nello MongoDB Jira SERVER project (componente: Aggregation Framework
). Ciò consentirà ad altri di commentare, guardare e votare sulla richiesta di funzionalità .. e se si finisce per implementare la funzionalità da soli, è possibile fare riferimento alla descrizione della funzione di Jira nella richiesta di pull. Prima di inviare una nuova richiesta di funzione, dovresti cercare anche se forse questa funzione ha already been suggested.
Ad esempio, ci sono già chiede quali:
Che tipo di operatori aggiuntivi cosa avete bisogno? – Stennie
stddev, median, operazioni condizionali principalmente – hotips