我建立新的應用和設計,現在它的結構,下面是關於爲什麼要使用或不使用貓鼬的一些想法:
- 貓鼬將是(對大型應用)慢
- 貓鼬更難更復雜的查詢
- 當你想更快的速度,你會選擇去無貓鼬,那麼你將有貓鼬和半W/O半查詢會有的情況。這是瘋狂的情況下,曾經..
- 貓鼬將讓你與簡單的數據庫結構簡單的應用程序
- 貓鼬會令你閱讀MongoDB的文檔和貓鼬文檔代碼快
- 隨着貓鼬的籌碼將獲得一件事取決於它,而且還有另外一種可能性,即崩潰並燃燒成灰燼。
MongoDB的驅動程序是原始的驅動程序,你直接傳送到MongoDB的。 貓鼬是抽象層。您的db結構非常簡單,您可以更輕鬆地訪問db。
抽象帶來了它的要求,你必須遵循的。你的應用會變慢,吃更多的內存並且變得更加複雜,但是如果你知道如何使用它,你可以更快地寫簡單的對象,將它們保存到數據庫中。
沒有貓鼬你將有直接的連接速度更快的應用程序的MongoDB。沒有人說,你不能寫自己的模型來保存東西到數據庫。您可以。我認爲這很容易。你編寫代碼,你會使用,你知道你需要什麼。你抽象層會變小,然後是貓鼬的。
我來自PHP世界,那裏我們有原始的sql與折舊的mysql_函數,然後我們得到了PDO - 面向對象的抽象層與sql進行通信。或者你可以選擇像Doctrine這樣的重型ORM,在mongoDB上有類似的貓鼬。具有setter/getters/save方法的對象等。這很好,但通過添加更多抽象,您將添加更多文件,更多邏輯,更多文檔和更多依賴關係。我喜歡讓東西簡單並且在我的堆棧中擁有更少的依賴關係。順便說一句,這就是爲什麼我從PHP在第一個地方移到服務器 - 客戶端的Javascript ..
隨着貓鼬,我認爲是偉大的,寫一些簡單的應用程序,具有類似簡單的DB結構爲sql。當你開始有子文件,想要做出所有這些瘋狂的查詢時,我發現它真的很難用貓鼬。您必須查看mongodb文檔,然後查看貓鼬文檔以瞭解如何進行查詢。有時候你會發現,MongoDB的X未來並不是貓鼬,所以你可以選擇原始的MongoDB驅動程序,並在其他地方寫入原始的MongoDB查詢。如果沒有貓鼬,你可以查看mongodb文檔並進行查詢。
爲什麼在模式較少的數據庫中使用模式層。如果您希望基於模式的數據庫使用爲其構建的其他內容。 (Mongoose只是MongoDB的模式抽象) – 2016-05-21 13:03:22