2011-06-27

PHP 新增文件到 MongoDB 如何取得新文件 ID ?

每份放到 MongoDB 的文件 ( Document ) 都會由 MongoDB 產生一組唯一的 ID 來當作識別用,阿舍習慣在用 findOne() 找到文件之後,就取出這份文件的 ID 來當作這份文件續取取值和更新用的 Key 值,這樣就不怕會找錯文件,但是,如果阿舍是新增一份文件到 MongoDB 時,那要怎麼取到這份新文件的 ID 呢 ?

於是,阿舍就再去看一下 PHP MongoDB 的 MongoCollection 物件的 insert 方法的說明,但是,沒有找到什麼有用的資訊,但是,就再往下看第一個範例時,看到上面的文字說明有說 "Inserting an object will add an _id field to it, unless it is passed by reference.",就是 MongoDB 會回寫新文件的 ID 到用來做 Insert 的那個物件哩 !

阿舍就測試了一下,就發現,原來的陣列會多出一個 '_id’ 欄位哩 ! 而這個 _id 欄位的值就和這份新增文件在 MongoDB 裡的 _id 是一樣的。

$people = array( '”name” => “ayubiz” , “nickname” => “阿舍");

$con->peopleDB->peopleCol->insert($people);

echo  $people[‘_id’] ;

mongoDB 會自動記幫你新增一個 '_id’ 的欄位來放,不過,阿舍後來有試過,其實,mongoDB 是可以讓你自定這組 ID 的,只要在存入前就定義好「_id」這項值,mongoDB 就會用這組當作唯一的識別 ID 的。


[+] Ubuntu 指令新手會用到的35個技法 - 這是以阿舍的使用經驗編寫出來的電子書,三天內應該就看的完,學的起來哩 ! 有空就參考一下囉 ! ... ^^=

關於阿舍

好文不藏私,請多分享囉!! ^^=



沒有留言 :

張貼留言

如果留言後,發現留言不見了,這通常是因為 Goolge 把它認為是垃圾留言了,請用信件通知阿舍調整 ( ayubiz@gmail.com )。謝謝 !