在Django項目中使用MongoDB作為后端數(shù)據(jù)庫,且不改變Django的ORM框架。實現(xiàn)Django用戶管理程序?qū)ongoDB數(shù)據(jù)庫中文件的增加和修改。
用法
1.pip install djongo
2.在Django項目下的setting.py中增加如下代碼:

3.運行 manage.py makemigrations,之后運行 manage.py migrate(僅在MongoDB中第一次建立數(shù)據(jù)表的時候需要)
4.完成。
要求:
1.Python3.6及以上版本
2.MongoDB 3.4及以上版本
3.如果項目數(shù)據(jù)庫中使用嵌套查詢或者子查詢,比如:

需要MongoDB3.6及以上版本。
如何工作?
Djongo對Django ORM框架的改變非常小,這就意味著不會發(fā)生一些不必要的錯誤。它將SQL字符串查詢轉(zhuǎn)變?yōu)镸ongoDB的文件查詢。至此,所有和Django相關(guān)的功能、數(shù)據(jù)庫等都這樣運作。
Django的服務(wù)模塊:

其它的也全都支持。
Django中用法
用于MongoDB的Djongo連接器確保你可以: --重新使用Django數(shù)據(jù)庫/ORM框架 --同原始Django變量一起發(fā)揮作用 --事先驗證你的代碼 --微小的SQL JOIN操作
參考集成Django和MongoDB獲取更詳細的介紹。如果你的項目使用了復(fù)雜的數(shù)據(jù)庫,也可以向?qū)<耀@取支持。
使用Django用戶管理模塊添加數(shù)據(jù)文件
比如你想利用Django創(chuàng)建一個以MongoDB為后端數(shù)據(jù)庫的博客平臺。在你博客項目app/models.py文件下定義Blog數(shù)據(jù)表:

完成設(shè)置,然后訪問localhost:80000/admin/你將會看到以下結(jié)果。

查詢嵌入的數(shù)據(jù)字段
在上面的例子中,我們要查詢所有以Beatles開頭的名字,可以使用下面的查詢方法:

參考在Django中使用MongoDB數(shù)據(jù)字段獲取更多的介紹。
Djongo管理器
Djongo管理器擴展了Django管理器的功能。它能夠讓你使用所有pymongo的API命令。可以在模型中定義類似Djongo管理器一樣的自定義管理器。

管理器的使用和Djongo管理器一樣: post = Entry.objects.get(pk=pkey) 將會獲得一個帶有主鍵pkey的對象。
對Pymongo直接操作
MongoDB有非常強大的查詢命令,DjongoManager能夠讓你完全使用它。

你可以直接使用任何pymongo命令通過在命令名字前面加上mongo的前綴。例如,對Blogpage(Blogpage在SQL中保存為一個數(shù)據(jù)表,在MongoDB中保存為一個集合)使用aggregate,函數(shù)名變?yōu)閙ongoaggregate。在模型中直接插入一個文件(不是使用.save()),使用mongoinsertone() 。