PHP庫(kù) 查詢Mongodb中的文檔ID的方法
在IBM我的一份新工作是一名開(kāi)發(fā)的后勤人員。那意味著我的大部分時(shí)間是在和數(shù)據(jù)庫(kù)打交道。在我的工作流程中,我花了一些時(shí)間在MongoDB上面——這是一個(gè)文檔數(shù)據(jù)庫(kù)。但是在通過(guò)ID來(lái)檢索記錄這個(gè)操作上面我碰到了一些問(wèn)題。下面的代碼是最終版本,以后碰到類似的問(wèn)題我可以直接引用它。如果大家也需要,希望下面對(duì)大家有所幫助。
MongoDB 和 IDs
當(dāng)我向一個(gè)集合中插入數(shù)據(jù)的時(shí)候,我并沒(méi)有設(shè)置_id字段;如果這個(gè)字段是空的話,那么MongoDB將要自動(dòng)生成一個(gè)ID來(lái)使用,這對(duì)我來(lái)說(shuō)是非常不錯(cuò)的。然而,當(dāng)我使用MongoDB生成的標(biāo)識(shí)符的時(shí)候,這樣就會(huì)出現(xiàn)問(wèn)題。
如果我使用db.posts.find()來(lái)檢索我的數(shù)據(jù)(我的集合被稱為posts),那么數(shù)據(jù)開(kāi)起來(lái)如下所示:
{ "_id" : ObjectId("575038831661d710f04111c1"), ...
因此,如果我想用ID來(lái)檢索數(shù)據(jù)的話,我還需要包含ObjectId方法來(lái)訪問(wèn)ID。
使用PHP庫(kù)
當(dāng)我使用PHP來(lái)做這個(gè)事情的時(shí)候,我在使用這個(gè)新的PHP類庫(kù)的時(shí)并沒(méi)有找到一個(gè)合適的例子(但是,這個(gè)類庫(kù)確實(shí)是一個(gè)非常不錯(cuò)的庫(kù))。在以前的版本中,這個(gè)庫(kù)使用一個(gè)叫做MongoID的類來(lái)實(shí)現(xiàn)。但是我知道這并不是我想要的——但是我確實(shí)可以通過(guò)這個(gè)類來(lái)檢查文檔。因此如果你僅僅能找到以前代碼中的例子,那了解這個(gè)方法還是很有用的。
通過(guò)用這個(gè)PHP庫(kù)將一個(gè)ID傳給MongoDB,你需要構(gòu)造一個(gè)MongoDB\BSON\ObjectID實(shí)例。下面的例子就是通過(guò)文檔的Id來(lái)檢索博客中的文檔。
$post = $posts->findOne(["_id" => new MongoDB\BSON\ObjectID($id)]);
然后,我將要更新這條記錄——這個(gè)博客帖子在這條記錄中還包含有嵌入的評(píng)論,因此向得到_id的這條記錄中的評(píng)論集合中添加一個(gè)數(shù)組,
$result = $posts->updateOne(
["_id" => new MongoDB\BSON\ObjectID($id)],
['$push' => [
"comments" => $new_comment_data
]
]);
最后希望本文對(duì)大家有所幫助。謝謝大家對(duì)本站的支持!
相關(guān)文章
MongoDB基礎(chǔ)入門之創(chuàng)建、刪除集合操作
這篇文章主要給大家介紹了關(guān)于MongoDB基礎(chǔ)入門之集合操作的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
MongoDB數(shù)據(jù)庫(kù)的日志文件深入分析
這篇文章主要給大家介紹了關(guān)于MongoDB數(shù)據(jù)庫(kù)日志的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MongoDB具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
Centos7 yum安裝mongodb實(shí)現(xiàn)步驟詳解
這篇文章主要介紹了Centos7 yum安裝mongodb實(shí)現(xiàn)步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
NoSQL反模式 - 文檔數(shù)據(jù)庫(kù)篇
我們?cè)O(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)Schema的都有一套完整的方案,而NoSQL卻沒(méi)有這些。半年前筆者讀了本《SQL反模式》的書,覺(jué)得非常好。就開(kāi)始留意,對(duì)于NoSQL是否也有反模式?好的反模式可以在我們?cè)O(shè)計(jì)Schema告訴哪里是陷阱和懸崖。2014-08-08
2021最新版windows10系統(tǒng)MongoDB數(shù)據(jù)庫(kù)安裝及配置環(huán)境
這篇文章主要介紹了2021最新版MongoDB數(shù)據(jù)庫(kù)安裝及配置環(huán)境(windows10系統(tǒng)),本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03

