网上资料很少,查看官方文档后整理的一些最基本的MongoDB的CURD与聚合方法

创建一个Model和Cortroller进行测试,代码如下:

Model<?php

/*

* http://www.yiiframework.com/

* */

namespace app\modules\index\models;

use yii\mongodb\Query;

use yii\mongodb\ActiveRecord;

use yii\data\ActiveDataProvider;

class Customer extends ActiveRecord

{

//指定集合名称

public static function collectionName()

{

return 'runoob';

}

//定义字段属性

public function attributes()

{

return [

'_id',

'title',

'description'

];

}

//添加文档方法1

public static function insertInfo(){

$collection = \Yii::$app->mongodb->getCollection (Customer::collectionName());

//返回添加后的objectId,不限制于attributes

$res = $collection->insert([

'name' => 'John Smith22',

'status' => 2

]);

return $res;

}

//添加文档方法2,限制于attributes

public static function saveInfo(){

$customer = new Customer();

$customer->title = '111';

$customer->description = '222';

$customer->insert();

//toArray() 将对象转为数组,返回本次添加的数据JSON

return $customer->toArray();

}

//删除文档

public static function deleteInfo(){

//返回删除的记录数

$res = Customer::deleteAll([

'_id' => '58ddf84f36420258358b4567'

]);

return $res;

}

//编辑文档 - [set],[where] @修改符合条件的所有记录,没有title字段则创建

public static function updateInfo(){

//返回更新的条数

$res = Customer::updateAll(

['title' => 'gg','description' => 'nn',],

['_id' => '58ddf8653642026c148b4567']

);

return $res;

}

//编辑文档 - 在所有文档中增加 age & ccy 如存在则会+1

public static function countersInfo(){

//返回更新的条数

$res = Customer::updateAllCounters(['age' => 1,'ccy' => 3]);

return $res;

}

//查询文档 - 聚合查询

public static function cmsInfo(){

$query = new Query ();

$row = $query->select(['title','url'])

->from ( Customer::collectionName() )

->where(['title' => 'test'])

->average('age');//age的平均值

//->max('age');//age最大的值

//->min('age');//age最小的值

//->sum('ccy');//ccy所有列相加的和

//->count('_id');//当前数据总数

return $row;

}

//查询文档 - 可用于分页列表

public static function selectInfo(){

$query = new Query ();

$query->select(['title','description'])

->from (Customer::collectionName())

->offset ( 4 )

->limit ( 2 );

$rows = $query->all();

return $rows;

}

//查询文档 - 根据条件只查询一条数据

public static function oneInfo(){

$query = new Query ();

$row = $query->select(['title','url'])

->from ( Customer::collectionName() )

->where(['_id' => '58ddf8653642026c148b4567'])

->one ();

return $row;

}

//ActiveDataProvider 方式查询1

public static function adp1Info(){

$provider = new ActiveDataProvider ( [

'query' => Customer::find (),

'pagination' => [

'totalCount' => 10,

'pageSize' => 2,

'page' => 4

]//可用于分页

] );

$models = $provider->getModels ();

return $models;

}

//ActiveDataProvider 方式查询2

public static function adp2Info(){

$query = new Query ();

$query->select(['title'])->from ( Customer::collectionName() )->where ( [

'title' => 'test'

] );

$provider = new ActiveDataProvider ( [

'query' => $query,

'pagination' => [

'totalCount' => 10,

'pageSize' => 2,

'page' => 2

]//可用于分页

] );

$models = $provider->getModels ();

return $models;

}

}

Controller<?php

namespace app\modules\index\controllers;

use yii\web\Controller;

use app\modules\index\models\Customer;

class MongoController extends Controller

{

public function actionIndex(){

$res = Customer::cmsInfo();

var_dump ( $res );

}

}

yii2 php7 mongodb,Yii2中MongoDB的使用方法-CURD相关推荐

  1. JS: 重新组织 mongoDB数据库中的 数据格式的方法 / 导入导出 / 附案例代码

    1 数据库导出 mongoexport -d dbName -c collectionName -o ./data.js 得到data.js,现格式如下 {"_id":" ...

  2. mongo 改字段名_一日一技:修改MongoDB集合中的字段名

    一日一技:修改MongoDB集合中的字段名 一日一技是一个每天更新的栏目,旨在使用3分钟的时间让你每天都有新的进步. 在我们使用MongoDB的过程中,经常会出现修改数据的情况.我们一般使用 upda ...

  3. MongoDB学习笔记~MongoDB实体中的值对象

    回到目录 注意,这里说的值对象是指在MongoDB实体类中的,并不是DDD中的值对象,不过,两者也是联系,就是它是对类的补充,自己本身没有存在的价值,而在值对象中,也是不需要有主键Id的,这与DDD也 ...

  4. python爬取音乐并保存_python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中

    爬取TOP500的音乐信息,包括排名情况.歌曲名.歌曲时间. 网页版酷狗不能手动翻页进行下一步的浏览,仔细观察第一页的URL: 这里尝试将1改为2,再进行浏览,恰好是第二页的信息,再改为3,恰好是第三 ...

  5. Pandas的学习(读取mongodb数据库集合到DataFrame,将DataFrame类型数据保存到mongodb数据库中)

    1.读取mongodb数据库集合到DataFrame import pymongo import pandas as pdclient = pymongo.MongoClient("数据库连 ...

  6. 如何将存储在MongoDB数据库中的数据导出到Excel中?

    将MongoDB数据库中的数据导出到Excel中,只需以下几个步骤: (1)首先,打开MongoDB安装目录下的bin文件夹,(C:\Program Files (x86)\MongoDB\Serve ...

  7. mongodb数据库中插入数据

    mongodb数据库中插入数据 一:connection 访问集合: 在mongodb数据库中,数据是存储在许多数据集合中,可以使用数据库对象的collection方法访问一个集合.该方法使用如下: ...

  8. brew下载的mysql卸载_Mac中mongoDB的安装与卸载步骤详解

    前言 MongoDB 是一个基于分布式文件存储的数据库,旨在为 web 应用提供可扩展的高性能数据存储解决方案.本文主要介绍的是关于在mac中安装卸载mongoDB数据库的方法,更多关于mongoDB ...

  9. linux php7 mongodb,CentOS 7下安装配置PHP7跟LAMP及MongoDB和Redis

    CentOS 7下安装配置PHP7跟LAMP及MongoDB和Redis 我是想能yum就yum,所有软件的版本一直会升级,注意自己当时的版本是不是已经更新了. 首先装CentOS 7 装好cento ...

  10. 开启docker中MongoDB的认证授权

    开启docker中MongoDB的认证授权 思路 开启MongoDB服务后,默认是没有权限验证的.直接通过IP加端口就可以远程访问数据库,并对数据库进行任意操作.下面介绍一下如何开启docker中Mo ...

最新文章

  1. main函数参数,在VS中向命令行添加参数的方法
  2. 内推 58 人拿到微软 offer!这位大佬有多强?
  3. 人群分割--Fully Convolutional Neural Networks for Crowd Segmentation
  4. 鼠标控制,扇形的大小
  5. java 空格乱码_java 中文乱码以及空格乱码解决方案总结
  6. SAP方丈-写给新手的SAP成本核算流程
  7. Django 3.2.5博客开发教程:HelloWorld欢迎页面
  8. JAVA——保持cookie登录状态的HttpClient封装工具类
  9. Bootstrap4+MySQL前后端综合实训-Day04-AM【新闻管理手机端页面+数据库操作(PowerDesigner 图形化数据库设计软件、SQLyog软件)】
  10. 工作83:wacch的使用
  11. mysql gtid 主主_mysql GTID主从复制(主库在线,添加新丛库)
  12. 使用sqoop从Oracle或mysql抽取数据到HDFS遇到的报错及解决
  13. java IoT物联网server 读取javascript协议配置文件
  14. MVC-通过对象获取整个表单内容
  15. HTML5开发手机项目总结
  16. winform使用fastreport制作报表(二)使用
  17. 谷歌android q 安装,谷歌修复了Pixel智能机安装Android Q Beta 4后循环重启的bug
  18. 逆矩阵在密码学中的应用(希尔密码原理)
  19. Java lambda表达式实现List转Map
  20. python中append函数的用法

热门文章

  1. Win10问题篇:解决电脑插入耳机没声音。
  2. 小米8屏幕指纹版(UD) 稳定版miui11刷magisk、太极参考
  3. 会员数据化运营分析小技巧(留存分析+AARRR+)
  4. 历史_美股和美债的联动关系
  5. 华为手机怎么修改dns服务器,华为域名解析修改dns
  6. vision-transformer(b站霹雳吧啦博主)
  7. 深度学习(三):人脸关键点检测算法
  8. Chrome主页被恶意篡改
  9. 独木桥的c语言程序,独木桥
  10. 产品开发都应该知道的8个网站,增强工作体验