在Day 15:用MongoDB絕地大反攻中,你開始用Robo 3T來刪除這些資料庫,希望能夠讓烏賊機器人失去AI大帝的控制。你先選擇了sentinels
資料集,然後用右鍵點選了 Drop Collection
選項,確認了刪除動作。接著你又選擇了plan
資料集,重複了同樣的步驟。
就在你刪除後,耳機裡傳來的熟悉的聲音:「你們只要刪除我的資料庫,我就可以追蹤到你們的位置,然後我再用烏賊機器人來攻擊你們。」居然是AI大帝!
但是你想不通:他怎麼會在這裡?他怎麼會發現你的行動?他是怎麼連到你們的耳機的?你更不敢相信,一切想法居然都被AI大帝看透了,你們等於是被AI大帝玩弄於股掌之間。
突然,你想到了什麼,連忙對著耳機說:「等等,我有一個主意!」
你對崔尼蒂和莫菲斯說:「我想到了一個辦法,就是用MongoDB的指令,修改AI大帝的資料庫,讓他以為我們還在裡面,但其實我們已經逃出去了。」
「怎麼修改?」崔尼蒂問。
「就是用update_one
或update_many
指令,來更新sentinels
和plan
資料集裡面的文件。我要把sentinels
資料集裡面的每個烏賊機器人的status
屬性改成"offline"
,表示它們都已經關機了。然後我要把plan
資料集裡面的文件的date
屬性改成"2024-01-01"
,表示『AI大帝毀滅人類計畫』延期了一年。這樣AI大帝就會以為他成功地刪除了我們,而且他還有時間準備他的計畫。」
「可是你剛才不是已經用Robo 3T,刪除sentinels
資料集跟plan
資料集了嗎?」莫菲斯問。
「還有一個問題,我們怎麼逃出去?」崔尼蒂又問。
莫菲斯說:「我覺得……我們可以試試看,用Python和MongoDB來創造一個虛擬通道,讓我們可以從AI大帝的控制中脫離,然後回到真實世界。」
你和崔尼蒂聽了莫菲斯的想法之後,覺得是可行的。你接著問莫菲斯要怎麼做。
「我們可以用Python操作MongoDB的程式語法,來建立一個新的資料庫,叫做escape
。在這個資料庫裡面,我們可以建立一個集合,叫做portal
。」莫菲斯繼續說,「在這個集合裡面,我們可以插入一些文件,每個文件都代表一個虛擬通道的參數。」
「我們可以插入這個文件:
{“_id”: 1, “name”: “Zion”, “destination”: “Reality”, “password”: “redpill”, “status”: “open”}
這樣就建立了一個叫做Zion
的虛擬通道,可以讓我們回到真實世界。但是需要輸入正確的密碼redpill
才能打開這個虛擬通道。」
你跟崔尼蒂聽完,都覺得莫菲斯這個想法不錯。
「那你要怎麼執行這些程式?」 你接著問。
「可以用Jupyter notebook來寫Python程式,這樣也可以執行。」
「Jupyter notebook是什麼?」你問。
「Jupyter notebook是一個圖形化的互動式記事本(文字編輯器),可以方便我們編輯、執行、儲存、匯出Python程式。可以參考這篇Jupyter Notebook & PyMongo──資料庫的圖書館員。」莫菲斯一邊向你解釋,一邊繼續說明計劃:「我已經在我的電腦上安裝好pymongo套件,還連到AI大帝的資料庫了。現在,我可以用Robo 3T來處理MongoDB資料庫了。」
「等一下,你剛才說『pymongo套件』……那又是什麼?」
「『pymongo套件』就是Python和MongoDB之間的介面。可以參考這篇Jupyter Notebook & PyMongo──資料庫的圖書館員。」
「要怎麼用這些工具?」你一邊問他,同時在心裡讚嘆,『莫菲斯真的太強了,到底是怎麼想出這些方法的……』
「對了,我可以用學習程式,把你傳送到一個虛擬空間!」莫菲斯突然想到還有學習程式這張王牌,「我們到那邊之後,我一邊跟你說明,一邊教你怎麼做。」