Mongo_Db 类別方法
Mongo_Db 类別能让你與 MongoDB 資料庫互动。雖然在某些情況下,
它與資料庫如 MySQL 的互动类似,也有一些明顯的差異。
所有排序選項(order by 及 indexes)使用 -1、false、'desc' 或 'DESC' 做为 DESC。任何其他值会是 ASC。
instance($name = 'default')
instance 回傳一个新的 Mongo_Db 實例。使用
$name 參数來指定要使用的配置和資料庫。
預設情況下,$name 是 'default',它需要你有一个在你
db.php 配置档案中的預設配置。閱讀關於更多 Mongo_Db 配置。
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
'default'
|
要使用的配置群組的名稱。 |
|
回傳 |
一个新的 Mongo_Db 實例 |
拋出 |
Mongo_DbException,當沒找到所給實例名稱的配置時。 |
範例 |
// 取得預設群組
$mongodb = \Mongo_Db::instance();
// 取得一个自訂群組
$mongodb = \Mongo_Db::instance('my_group');
|
get($collection = "")
get 方法從一个集合回傳結果。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
集合名稱。 |
|
回傳 |
一个包含結果陣列的 stdClass 物件。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$result = $mongodb->get('users');
foreach($result as $user)
{
// 用 $user 做一些事
}
|
get_cursor($collection = "")
get_cursor 方法回傳指定集合的 mongodb 游标。它提供了比一般 get() 方法更好的地方是,當处理大型資料集做为文件時,一次只会載入它們存取的進入記憶體而不是一次全部。對長時間执行的程序非常有用。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
集合名稱。 |
|
回傳 |
一个 MongoCursor 物件。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$result = $mongodb->get_cursor('documents');
foreach($result as $document)
{
// 對 $document 做點什么
}
|
get_one($collection = "")
get_one 方法從一个集合回傳一个結果。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
集合名稱。 |
|
回傳 |
一个包含单一結果陣列的 stdClass 物件。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$user = $mongodb->get_one('users');
|
get_where($collection = "", $where = array(), $limit = 99999)
get_where 方法回傳來自集合的結果。另外,
你還可以提供一个調節結果以及提供限制的陣列。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
集合名稱。 |
$where |
陣列 |
array()
|
一个 where 語句的陣列。 |
|
回傳 |
一个包含結果陣列的 stdClass 物件。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
// 取得 'active' 是 "yes" 的前 10 筆結果
$result = $mongodb->get_where('users', array(
'active' => 'yes',
), 10);
foreach($result as $user)
{
// 對 $user 做一些事
}
|
select($includes = array(), $excludes = array())
select 方法設定在查詢過程中要包含或排除哪些欄位。
为了使用 excludes 陣列,includes 陣列必須为空。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$includes |
陣列 |
array()
|
要包含的欄位陣列 |
$where |
陣列 |
array()
|
要排除的欄位陣列 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
// 只選擇这些欄位
$mongodb->select(array(
'name',
'surname',
'email',
));
$users = $mongodb->get('users');
// 或使用排除陣列
$mongodb = \Mongo_Db::instance();
// 只選擇这些欄位
$mongodb->select(array(), array(
'not_this',
'or_this',
));
$users = $mongodb->get('users');
|
where($wheres = array())
where 方法設定 'where is equal to' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$wheres |
陣列 |
array()
|
有欄位做为鍵以及值做为搜尋准則的關聯陣列的陣列。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例.
$mongodb = \Mongo_Db::instance();
$mongodb->where(array(
'name' => 'John',
'surname' => 'Doe',
));
$users = $mongodb->get('users');
|
or_where($wheres = array())
or_where 方法設定 'or where is equal to' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$wheres |
陣列 |
array()
|
有欄位做为鍵以及值做为搜尋准則的關聯陣列的陣列。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->where(array(
'name' => 'John',
'surname' => 'Doe',
))->or_where(array(
'name' => 'Jim',
));
$users = $mongodb->get('users');
|
where_in($field = "", $in = array())
where_in 方法設定 'where in' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
''
|
給查詢的欄位。 |
$in |
陣列 |
array()
|
可能值的陣列。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->where_in('name', array(
'John', 'James', 'Frank', 'Dave',
));
$users = $mongodb->get('users');
|
where_in_all($field = "", $in = array())
where_in_all 方法設定 'all where in' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
''
|
給查詢的欄位。 |
$in |
陣列 |
array()
|
可能值的陣列。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->where_in_all('name', array(
'John', 'James', 'Frank', 'Dave',
));
$users = $mongodb->get('users');
|
where_not_in($field = "", $in = array())
where_not_in 方法設定 'where not in' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
''
|
給查詢的欄位。 |
$in |
陣列 |
array()
|
可能值的陣列。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->where_not_in('name', array(
'John', 'James', 'Frank', 'Dave',
));
$users = $mongodb->get('users');
|
where_gt($field = "", $x)
where_gt 方法設定 'where greater than' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
''
|
給查詢的欄位。 |
$x |
混合 |
必要 |
要比較的值。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->where_gt('age', 12);
$users = $mongodb->get('users');
|
where_gte($field = "", $x)
where_gte 方法設定 'where greater than or equal to' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
''
|
給查詢的欄位。 |
$x |
混合 |
必要 |
要比較的值。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->where_gte('age', 18);
$users = $mongodb->get('users');
|
where_lt($field = "", $x)
where_lt 方法設定 'where lower than' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
''
|
給查詢的欄位。 |
$x |
混合 |
必要 |
要比較的值。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->where_lt('age', 120);
$users = $mongodb->get('users');
|
where_lte($field = "", $x)
where_lte 方法設定 'where lower than or equal to' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
''
|
給查詢的欄位。 |
$x |
混合 |
必要 |
要比較的值。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->where_lt('age', 120);
$users = $mongodb->get('users');
|
where_between($field = "", $x)
where_between 方法設定 'where between' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
''
|
給查詢的欄位。 |
$x |
混合 |
必要 |
要比較的低值。 |
$y |
混合 |
必要 |
要比較的高值。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->where_between('age', 10, 20);
$users = $mongodb->get('users');
|
where_between_ne($field = "", $x)
where_between_ne 方法設定 'where between and not equal to' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
''
|
給查詢的欄位。 |
$x |
混合 |
必要 |
要比較的低值。 |
$y |
混合 |
必要 |
要比較的高值。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->where_between_ne('age', 10, 20);
$users = $mongodb->get('users');
|
where_ne($field = "", $x)
where_ne 方法設定一个 'where not equal to' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
''
|
給查詢的欄位。 |
$x |
混合 |
必要 |
要比較的低值。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->where_ne('name', 'Allerd');
$users = $mongodb->get('users');
|
like($field = '', $value = '', $flags = 'i', $disable_start_wildcard = false, $disable_end_wildcard = false)
like 方法設定一个 'like' 語句。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
''
|
給查詢的欄位。 |
$value |
混合 |
''
|
要比較的值。 |
$flags |
字串 |
'i'
|
能让你設定典型的正則表達式标誌:
- i = 不區分大小寫
- m = 多行
- x = 可以包含註解
- l = 語言环境
- s = DOTALL,"." 符合任何字符,包括換行符
- u = 符合 unicode
|
$disable_start_wildcard |
布林 |
false
|
當設为 false 字串開頭必須符合。 |
$disable_end_wildcard |
布林 |
false
|
當設为 false 字串結尾必須符合。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
// 尋找名稱開頭是 'fran' 的使用者
+$mongodb->like('name', 'fran', 'im', false, true);
$users = $mongodb->get('users');
|
order_by($fields = array())
order_by 方法排序結果。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$fields |
陣列 |
array()
|
要設定值是降序排列,你必序傳遞值是 -1、FALSE、'desc' 或 'DESC',否則都会被設为 1(ASC)。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->order_by(array(
'age' => 'asc',
'name' => 'desc'
));
$users = $mongodb->get('users');
|
limit($x = 99999)
limit 方法限制取回的筆数。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$x |
数字 |
99999
|
要取回的筆数。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
// 取得最舊 10 筆
$mongodb->order_by(array(
'age' => 'desc',
))->limit(10);
$users = $mongodb->get('users');
|
offset($x = 0)
offset 方法設定要略過的筆数。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$x |
数字 |
0
|
要略過的筆数。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
// 取得第 10 到 15 列
$mongodb->order_by(array(
'age' => 'desc',
))->limit(5)->offset(10);
$users = $mongodb->get('users');
|
count($collection = '', $foundonly = false)
count 方法計算結果。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
要使用的集合(資料表)。 |
$foundonly |
布林 |
false
|
如果为 true,它会将目前限制以及略過選擇列入考慮。 |
|
回傳 |
筆数。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
// 取得使用者数量。
$num_users = $mongodb->count('users');
|
insert($collection = '', $insert = array())
insert 方法新增一列到所給集合。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
要使用的集合(資料表)。 |
$insert |
陣列 |
array()
|
要新增的值 |
|
回傳 |
新增的 ID,或 false 在失敗時。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
// 新增一个新的使用者
$insert_id = $mongodb->insert('users', array(
'name' => 'John',
'surname' => 'Doe',
'email' => 'dont.em@ilme.com',
));
|
update($collection = "", $data = array(), $options = array())
update 方法更新所給的集合。
如果你沒有設定 "multiple" 選項为 true,只有最先遇到的紀錄会被更新。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
要使用的集合(資料表)。 |
$data |
陣列 |
array()
|
新的值。 |
$options |
陣列 |
array()
|
提供選擇性的額外選項
(?)
到更新命令。
|
|
回傳 |
true 在成功時 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
// 更新一个使用者
$bool = $mongodb->where(array('id' => $an_id))->update('users', array(
'name' => 'John',
'surname' => 'Doe',
'email' => 'john@doe.com',
));
|
update_all($collection = "", $data = array())
update_all 方法更新在所給集中的所有紀錄。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
要使用的集合(資料表)。 |
$data |
陣列 |
array()
|
新的值。 |
|
回傳 |
true 在成功時 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
// 更新 Spammer 的 surname。
$bool = $mongodb->where('name', 'Spammer')->update_all('users', array(
'surname' => 'Don\'t believe us.',
));
|
delete($collection = "")
delete 方法在一个所給的集合中刪除第一筆紀錄。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
要使用的集合(資料表)。 |
|
回傳 |
true 在成功時 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
// 刪除一个名为 Spammer 的使用者
$bool = $mongodb->where(array('name' => 'Spammer'))->delete('users');
|
delete_all($collection = "")
delete_all 方法在一个所給的集合中刪除所有紀錄。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
要使用的集合(資料表)。 |
|
回傳 |
true 在成功時 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
// 刪除所有名为 Spammer 的使用者
$bool = $mongodb->where(array('name' => 'Spammer'))->delete_all('users');
|
command($query = array())
command 方法运行一个 MongoDB 命令。
在 MongoDB 文件尋找更多關於命令。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$query |
陣列 |
array()
|
一个命令參数的陣列。 |
|
回傳 |
命令結果 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->command(array(
'geoNear' => 'buildings',
'near' => array(53.228482, -0.547847),
'num' => 10,
'nearSphere' => true
));
|
add_index($collection = "", $keys = array(), $options = array())
add_index 方法添加一个帶選擇性參数集合的鍵的索引。
在 php.net 閱讀更多關於選項。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
要使用的集合(資料表)。 |
$keys |
陣列 |
array()
|
有欄位及排序方向的關聯陣列。 |
$options |
陣列 |
array()
|
帶選擇性設定的陣列。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->add_index('my_collection', array(
'first_name' => 'ASC',
'last_name' => -1)
, array(
'unique' => true
));
|
remove_index($collection = "", $keys = array())
remove_index 方法從集合移除一个或更多索引。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
要使用的集合(資料表)。 |
$keys |
陣列 |
array()
|
有欄位(以及排序方向)的關聯陣列。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->remove_index('my_collection', array(
'first_name' => 'ASC',
'last_name' => -1)
));
// 或
$mongodb->remove_index('first_name');
|
remove_all_indexes($collection = "")
remove_all_indexes 方法從集合移除所有索引。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
要使用的集合(資料表)。 |
|
回傳 |
目前 Mongo_Db 實例。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$mongodb->remove_all_indexes('my_collection');
|
list_indexes($collection = "")
list_indexes 方法回傳一个給此集合的索引名稱的陣列。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
字串 |
''
|
要使用的集合(資料表)。 |
|
回傳 |
給此集合的索引名稱的陣列。 |
範例 |
// 取得一个實例
$mongodb = \Mongo_Db::instance();
$indexes = $mongodb->list_indexes('my_collection');
|
get_collection($collection = "")
get_collection 方法回傳一个來自 MongoDB PHP Driver 核心的 MongoCollection 物件。(?)
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$collection |
string |
''
|
要使用的集合(資料表)。 |
|
回傳 |
一个來自 MongoDB PHP Driver 核心的 MongoCollection 物件。 |
範例 |
// 取得一个集合
$mongodb = \Mongo_Db::instance();
$my_collection = $mongodb->get_collection('my_collection');
$my_collection->update(array('_id' => $id), array('$push' => array('array.to.add.to' => $data)));
这被設立是由於缺乏內部 update modifier operation 支援。
|
list_collections($system_collections = false)
list_collections 方法回傳一个所有存在於資料庫集合的 MongoCollection 物件陣列。你也可以選擇性的指定你想要回傳所有系统集合。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
system_collections |
布林 |
false
|
是否包含系统集合。 |
|
回傳 |
一个 MongoCollection 物件的陣列。 |
範例 |
// 取得一个 mongo 實例
$mongodb = \Mongo_Db::instance();
$collections = $mongodb->list_collections();
|