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

  • 相关阅读:
    思考c++编程-译自c++ programming language 1.7节
    对于(学习c++)的c程序员的建议
    输入框字数统计效果
    去掉tppabs冗余代码
    分享JS实现IE6 PNG完全透明(包括背景图片)
    系统启动过程
    VBP结构介绍
    python的xml文件操作
    javascript实现手动调整下拉列表框
    javaScript实现从一个下拉列表到另一个下拉列表
  • 原文地址:https://www.cnblogs.com/lindsayzhao103011/p/3503068.html
Copyright © 2020-2023  润新知