PHP和MongoDB都是現(xiàn)代Web應(yīng)用開發(fā)中常用的技術(shù)。在Mongodb中,使用命令行進(jìn)行數(shù)據(jù)的查、增、刪、改等操作是非常常見的,同樣在PHP中也能夠使用命令行來(lái)操作MongoDB中的數(shù)據(jù)。在本文中,我們將介紹PHP中MongoDB命令行的基本用法。
在PHP中,連接Mongodb數(shù)據(jù)庫(kù)十分方便。使用以下命令,您可以輕松建立驅(qū)動(dòng)程序和數(shù)據(jù)庫(kù)的連接:
$mongo = new MongoClient("mongodb://localhost:27017"); $db = $mongo->selectDB("mydb");
上述代碼中,selectDB()
方法會(huì)為您選擇MongoDB中的一個(gè)特定的數(shù)據(jù)庫(kù)。如果進(jìn)行其他操作,我們需要使用該語(yǔ)法的具體實(shí)現(xiàn)。如下:
$collection = $db->selectCollection("mycollection");
上述代碼會(huì)選中MongoDB數(shù)據(jù)庫(kù)中的一個(gè)特定的集合,并且數(shù)據(jù)庫(kù)會(huì)返回一個(gè)MongoCollection對(duì)象。使用此對(duì)象方法進(jìn)行后續(xù)的查詢、更新等操作。
下面我們介紹MongoDB中的一些常用操作命令:
插入文檔
在MongoDB中,可以使用以下命令來(lái)插入文檔:
$document = array( "title" =>"PHP MongoDB", "author" =>"John", "contents" =>"This is the contents." ); $collection->insert($document);
此時(shí),MongoDB將自動(dòng)為您的文檔分配一個(gè)_id
字段,它是唯一的,可以被視為文檔的主鍵。如果想讓Mongodb自己來(lái)分配_id
值,可以在插入時(shí)省略該參數(shù):
$collection->insert(array("title" =>"PHP MongoDB", "author" =>"John", "contents" =>"This is the contents."));
更新文檔
接下來(lái)讓我們來(lái)看看如何在MongoDB中更新文檔:
$criteria = array("title" =>"PHP MongoDB"); $newdata = array('$set' =>array("contents" =>"This is new contents.")); $collection->update($criteria, $newdata);
在上述代碼中,我們首先選取了一個(gè)文檔的目標(biāo),即選擇了一個(gè)匹配條件為"title"字段等于"PHP MongoDB"的文檔,然后我們使用$set
操作符來(lái)更新其中的"contents"字段。如果不選取目標(biāo)文檔,update()
命令將會(huì)更新其中匹配的第一個(gè)文檔。
刪除文檔
下面我們來(lái)看看如何在MongoDB中刪除文檔。刪除操作同樣需要進(jìn)行匹配操作。例如我們要?jiǎng)h除"title"字段等于"PHP MongoDB"的文檔:
$criteria = array("title" =>"PHP MongoDB"); $collection->remove($criteria);
查詢文檔
在MongoDB中,可以使用find()
進(jìn)行文檔查詢,以下代碼演示了查詢"title"字段等于"PHP MongoDB"的文檔:
$criteria = array("title" =>"PHP MongoDB"); $cursor = $collection->find($criteria); foreach ($cursor as $doc) { echo $doc['title'] . "\n"; }
上面的代碼執(zhí)行后,會(huì)輸出標(biāo)題為"PHP MongoDB"的文檔??梢允褂眠@種方式輸出文檔中的其他字段。例如:
foreach ($cursor as $doc) { echo $doc['contents'] . "\n"; }
此時(shí)輸出的是文檔中“contents”字段的值。如果要匹配其他字段,則需要將$criteria數(shù)組修改為對(duì)應(yīng)的值即可。
以上是PHP中MongoDB常用命令的介紹。當(dāng)然,雖然這些例子都是基于MongoDB進(jìn)行的操作,但是PHP中的$mongo和$db也可以用于訪問其他數(shù)據(jù)庫(kù),例如Redis、MySQL等。