「我覺得這個image有問題,它好像不能讓烏賊機器人自毀,可能有什麼別的目的。我怕我們被AI大帝騙了,他可能在這個image裡面埋了什麼後門或病毒,只要我們執行它,就會讓AI大帝得到我們的位置之類的。」
「你的懷疑可能是對的,AI大帝可能真的在這個image裡面設了一些陷阱,用來對付我們。我們不能再浪費時間在這個image上了,我們要想別的辦法來對付他。」莫菲斯說。
「我這裡有一些進展,」崔尼蒂說,「我找到了『AI大帝毀滅人類計畫』的資料庫,這是一個用MongoDB建立的NoSQL資料庫,資料庫裡面是所有烏賊機器人的記憶和行動指令。我打算用MongoDB的指令和圖形化介面Robo 3T來刪除這些資料庫,希望能夠讓烏賊機器人失去AI大帝的控制。」崔尼蒂說。
「MongoDB?Robo 3T?妳剛才說的這些是什麼東西?」你問崔尼蒂。
「MongoDB就是一種『資料庫軟體』,是使用『NoSQL資料庫架構類型』的資料庫軟體,」崔尼蒂解釋,「用MongoDB建立的NoSQL資料庫,和SQL資料庫相比有一些不一樣的地方,你有資料庫選擇障礙嗎?MongoDB + Robo 3T 讓你資料管理更輕鬆這篇文章有針對它們做比較。」
「Node.js開發人員滿喜歡用MongoDB的,」莫菲斯補充,「像是eBay、GAP、Bosch、Adobe這些大公司也都用MongoDB!」
「Robo 3T是一個MongoDB的圖形化管理工具。你可以看你有資料庫選擇障礙嗎?MongoDB + Robo 3T 讓你資料管理更輕鬆這篇文章了解關於MongoDB、資料庫、和圖形化介面是什麼。」崔尼蒂繼續解釋,「我們可以用Robo 3T來查看和管理我們的MongoDB資料庫。」
你覺得用MongoDB+ Robo 3T這個做法很聰明,這樣就可以利用MongoDB的指令和圖形化介面Robo 3T來刪除『AI大帝毀滅人類計畫』的資料庫,讓烏賊機器人失去AI大帝的控制。
你問崔尼蒂:「原來如此,我懂了。那妳需要我幫忙嗎?我可以用我的電腦來連接到那個資料庫,然後用Robo 3T來操作。」
崔尼蒂說:「好,沒問題!你幫我用這個指令來連接到那個資料庫,然後用Robo 3T來操作。」
$ docker run -d -p 27017:27017 deusexmachina/sentinellib:destroyer
你按照他們的指示,用docker run指令來建立container,並將container的27017號埠映射到主機(host)的27017號埠。然後你用Robo 3T這個工具來連接到主機(host)的27017號埠,操作資料庫。
你發現這個資料庫裡面有兩個資料集,分別叫做sentinels
和plan
。在sentinels
資料集裡面,有很多文件,每個文件都代表一個烏賊機器人。每個文件都有一些屬性,例如_id
、name
、status
、location
、memory
等。在plan
集合裡面,只有一個文件,它包含了『AI大帝毀滅人類計畫』的細節。這個文件有一些屬性,例如_id
、name
、date
、target
、method
等。
你開始用Robo 3T來刪除這些資料庫,希望能夠讓烏賊機器人失去AI大帝的控制。你先選擇了sentinels
資料集,然後用右鍵點選了「Drop Collection」選項,確認了刪除動作。接著你又選擇了plan
資料集,重複了同樣的步驟。
就在你刪除後,耳機裡傳來的熟悉的聲音:「你們以為用MongoDB來刪除我的資料庫,就能讓我的烏賊機器人失去控制嗎?哈哈哈,我早就料到你們要搞這招,所以在資料庫裡面放了一個驚喜要給你們。」
你認出這個聲音是AI大帝!但是你想不通:他怎麼會在這裡?他怎麼會發現你的行動?他是怎麼連到你們的耳機的?
AI大帝繼續說:「這個小驚喜就是:你們只要刪除我的資料庫,我就可以追蹤到你們的位置,然後我再用烏賊機器人來攻擊你們。」
你們不敢相信這是真的,你們不敢相信自己的聰明才智只是AI大帝的棋子。你的一切想法都被AI大帝看透了,你們被AI大帝玩弄於股掌之間。
突然,你想到了什麼,連忙對著耳機說:「等等,我有一個主意!」