Yii 操作 MongoDB數據庫



1. 安裝php_mongo
     把php_mongo.dll放到php/ext下面,然后打開php.ini(注意:是apache的php.ini),寫入extension=php_mongo.dll,重啟wamp。

2. 安裝MongoDB。
3. 使用MongoYii extension
   (1)看幫助文檔設置main.php
   (2)創建Model。
            定義變量。
            重寫model()和collectionName()。
            定義rules(),參考http://huangjiyun.diandian.com/post/2011-10-10/5686398。另外MongoYii還有幾個自定義的validate,
            用法:array('name', 'EMongoExistValidator', 'className'=>'User', 'attributeName'=>'name'),
            定義relations()。
   (3) 對Mongo的CRUD操作.

Create:
save(), insert()
Read:
findOne(), find(), findAll()調用find(), findAllByPk(), findBy_id(), findByPk()
Update:
update(), updateByPk(), updateAll($criteria = array(), $updateDoc = array()).

關於updateAll()的一些操作:

'$inc': 如果記錄的該節點存在,讓該節點的數值加N;如果該節點不存在,讓該節點值等於N. saveCounters()是該操作的實現。
'$set': 讓某節點等於給定值。
'$unset': 刪除某節點
'$push': 如果對應節點是個數組,就附加一個新的值上去;不存在,就創建這個數組,並附加一個值在這個數組上;如果該節點不是數組,返回錯誤。
'$pushAll': 與$push類似,只是會一次附加多個數值到某節點。
'$addToSet': 如果該階段的數組中沒有某值,就添加之。
'$pop': 刪除某數組節點的最后一個元素。
'$pull': 如果該節點是個數組,那么刪除其值為value的子項,如果不是數組,會返回一個錯誤。
'$pullAll': 與$pull類似,只是可以刪除一組符合條件的記錄。

Delete:

deleteByPk(), deleteAll()

其他的一些方法:

saveCounters(), count().

(4) EMongoCriteria

condition sort addCondition($column, $value), addOrCondition(array $condition), compare()
$c->compare('name', 'sammaye');
$c->compare('i', '<4');

(5) 查詢結果

對於查詢結果是多條的,它的返回值是一個Cursor, 可以使用getNext()一次次的去查找下一個 或者直接將它變成數組.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM