摘要:PHP & MONGODB 內嵌文件取得
我有mailbox
而mailbox有個人資訊,及他的所有信件資訊。
這樣看起來,其實在MongoDB
個人資訊為collection底下,
而所有信件資訊,就是這個人資訊的其中一個屬性inboxs
而inboxs是一個 文件array
我要取得這文件array的其中一項時,他的id為pid
這就是只取得內嵌文件的其中一項。
這時候mongo db會如何下呢
他有
findOne,有兩個參數,第一個是主要的查詢主要文件項目,第二個是,這個文件項目下再查詢子項目出來
db.collection.findOne({'_id':'tomlai'},{'inboxs':{$elemMatch:{'pid':10000}}});
在PHP的話,就這樣寫
$conn= new Mongo("mongodb://user:password@127.0.0.1:27017");
$db = $conn->selectDB('mailbox');
$db->authenticate("user","password");
$collection = new MongoCollection($db,'mailbox');
$query_doc = array('_id'=> 'tomlai');
$query_field_doc = array("inboxs"=>array('$elemMatch'=>array('pid'=>$pid)));
$data = $collection->findOne($query_doc,$query_field_doc);
$datas= NULL;
if($data['inboxs'][0]['data']!=NULL)
{
datas= $data['inboxs'][0]['data'];
}
$conn->close();