zoukankan      html  css  js  c++  java
  • 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()一次次的去查找下一个 或者直接将它变成数组.

  • 相关阅读:
    内部类
    Tomcat 配置安装
    Eclipse转idea改设置
    MyEclipse增强代码补全
    06、自动挂载+超级守护进程+时间同步+tcpwrapper+软硬链接+日志管理
    05、ip划分+网络配置+虚拟化基础+基本路由
    04、rpm+yum+tar解压
    03、磁盘管理+swap分区创建+磁盘配额+自动挂载
    02、用户管理
    01、Linux基础命令
  • 原文地址:https://www.cnblogs.com/lindsayzhao103011/p/3503068.html
Copyright © 2011-2022 走看看