1、連接
mongodb默認端口是:27017,因此我們連接mongodb:$mongodb = new Mongo('localhost') 或者指定IP與端口 $mongodb = new Mongo('192.168.127.1:27017') 端口可改變
若mongodb開啟認證,即--auth,則連接為: $mongodb = new Mongo('root:w888168@localhost:27017');
2、選擇數據庫
$db = $mongodb->selectDBs('dbname'); 或者直接指定數據庫名(因為mongodb可以直接創建不存在的數據庫) : $db = $mongodb->dbname;
3、選擇集合(collection)
$tables = $db->selectColletion('tablename')或者 $tables = $db->tablename;
接下來就可以操作集合了
4、插入新文檔(document)
collection插入數據,如一個人的信息
$one = array(
'name' => 'lily';
'age'? => 0,
'hobby' => array(
'dance',
'swim',
'music'
),
);
$res = $tables -> insert($one,true);
第二個參數用于等待MongoDB完成操作,以便確定是否成功,默認值為false,當有大量記錄插入時使用該參數會比較有用。插入新文檔后,MongoDB會返回一個記錄標識。
結果為:1,則說明已經插入了
5、刪除文檔
刪除文檔比較簡單: $res = $tables->remove(array('name'=>'lily'));
注意:這里是將滿足條件的都刪除,如果只有刪除第一個滿足條件的文檔,則添加第二個參數為true即可
6、查找文檔
定義一個過濾器:$filter = array('name'=>'lily');
$res = $tables -> find($filter);
查找一個 : $res = $tables -> findOne($filter);
此外,還可以在過濾器里添加比較
例,獲取sessions大于10的信息:
$filter = array('sessions' => array('$gt' => 10)); (gt -- > lt--< gte -- >= lte <=)
$cursor = $collection->find($filter);
返回的接口為游標
有一個重要的細節需要注意,只有當需要結果的時候查詢才會被執行,在第1個例子中,當foreach循環開始時,查詢才被執行。
這是個很有用的特性,因為這可以通過在游標(cursor)中增加選項來取回結果,恰好在定義查詢后,執行查詢前這個時刻。例如,可以設置選項來執行分頁,或者獲取指定數目的匹配的文檔。
$total = $cursor->total();
$cursor->limit(20)->skip(40);
foreach($cursor as $user) {
}