MongoDB nie ma prawdziwego wyczucia procedur składowanych. Posiada funkcje po stronie serwera, jednak te funkcje:
- Nie pracuj z shardingiem
- Są wolne
- Musi być oceniany (dr Zło)
- Są tak naprawdę zaprojektowane tylko do użytku w ramach Map Reduces, aby uniemożliwić przechowywanie wielu kopii wspólnego kodu w wielu miejscach.
Możesz to jednak osiągnąć za pomocą $where
lub eval
ing rzeczywistej nazwy funkcji w system.js
. Ale w rzeczywistości nie działają one „po stronie serwera”.
Używanie exec
Wpisz polecenie w swojej aplikacji, aby wywołać powłokę, również nie będzie dobrym pomysłem. Pliki skryptów, które uruchamiasz w powłoce, są tak samo po stronie klienta, jak Twoja własna aplikacja, więc jest to po prostu bezcelowe.
MongoDB również nie zezwala na wyzwalacze, jednak znajdują się one w JIRA:https://jira.mongodb. org/browse/SERVER-124 ale nie są zaplanowane. Musisz umieścić wyzwalacze po stronie klienta w swoim kodzie.
NoSQL nie jest relacyjny. Możesz przeczytać, jak zaprojektować odpowiedni schemat dla MongoDB, oto punkt wyjścia:http://www.mongodb.org/display/DOCS/Schema+Design . To nauczy Cię istoty MongoDB i jak wybrać odpowiednią strukturę.