thinkphp操作mongodb的问题

框架里面已经把mongodb数据库连接配置好了,具体怎么实现CURD的操作,如下是我的操作

$model = M('category');
// $model = D('category');

/** 查询 */
$result = $model->where($where)->select();

我的想法是和框架自带的方法能和操作mysql那样一样操作,但是发现这样行不通,老是说我的M方法事例化有问题。但是我的mongodb里面确确实实存在category的。求解

阅读 3.4k
1 个回答

不知道我这个方法能不能解决你的问题。我之前也遇到这样的问题用M方法出错,具体错误我忘记了可能和你的不太一样,我是用了D方法和操作mysql一样没问题,不过用D方法需要注意,在model文件里面定义好对应的类就可以了。例如

<?php
/**
 * Description: MongoDB操作
 * Author: yangxiangming@live.com
 * Date: 2015/9/9
 * Time: 13:35
 */

namespace Bbsapi\Model;
use Think\Model\MongoModel;

class ExampleModel extends MongoModel {

}

调用操作如下

<?php
/**
 * Description: MongoDB操作
 * Author: yangxiangming@live.com
 * Date: 2015/9/9
 * Time: 13:51
 */

namespace \Controller;
use Think\Model\ExampleModel;
class ExampleController extends ExampleModel{

    public function example(){
        $where['_id'] = '54dd9116e4b061818991ac7d';
        $model = D('Example');

        /** 查询 */
        $result = $model->where($where)->select();

        /** 添加 */
        $data['name'] = 'Example';
        ……
        $model->add($data);

        /** 更新 */
        $data['name'] = 'ExampleTmp';
        ……
        $model->where($where)->save($data);

        /** 删除 */
        $model->where($where)->delete();
    }
}

参考链接

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题