在IBM我的一份新工作是一名開發的後勤人員。那意味著我的大部分時間都在和資料庫打交道。在我的工作流程中,我花了一些時間在MongoDB上面——這是一個文件資料庫。但是在透過ID來檢索記錄這個操作上面我碰到了一些問題。下面的程式碼是最終版本,以後碰到類似的問題我可以直接引用它。如果大家也需要,希望下面對大家有幫助。
MongoDB 和IDs
當我向一個集合中插入資料的時候,我並沒有設定_id欄位;如果這個欄位是空的話,那麼MongoDB將要自動產生一個ID來使用,這對我來說是非常不錯的。然而,當我使用MongoDB產生的標識符的時候,這樣就會出現問題。
如果我使用db.posts.find()來檢索我的資料(我的集合稱為posts),那麼資料開起來如下所示:
{ "_id" : ObjectId("575038831661d710f04111. , ...
因此,如果我想用ID來檢索資料的話,我還需要包含ObjectId方法來存取ID。
使用PHP庫
當我使用PHP來做這個事情的時候,我在使用這個新的PHP類庫的時並沒有找到一個合適的例子(但是,這個類庫確實是一個非常不錯的庫)。在先前的版本中,這個函式庫使用一個叫做MongoID的類別來實作。但是我知道這不是我想要的——但是我確實可以透過這個類別來檢查文件。因此如果你只是能找到以前程式碼中的例子,那了解這個方法還是很有用的。
透過用這個PHP函式庫將一個ID傳給MongoDB,你需要建構一個MongoDBBSONObjectID實例。下面的例子就是透過文件的Id來檢索部落格中的文件。
$post = $posts->findOne(["_id" => new MongoDBBSONObjectID($id)]);
然後,我將要更新這條部落格文章-這篇部落格文章在記錄中也包含有嵌入的評論,因此向得到_id的這條記錄中的評論集合中添加一個數組,
$result = $posts->updateOne( ["_id" => new MongoDB\BSON\ObjectID($id)], ['$push' => [ "comments" => $new_comment_data ] ]);
最後希望本文對大家有所幫助。謝謝大家對本站的支持!
更多PHP函式庫 查詢Mongodb中的文檔ID的方法相關文章請關注PHP中文網!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

禪工作室 13.0.1
強大的PHP整合開發環境