yii2 php7 mongodb,Yii2中MongoDB的使用方法-CURD
网上资料很少,查看官方文档后整理的一些最基本的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相关推荐
- JS: 重新组织 mongoDB数据库中的 数据格式的方法 / 导入导出 / 附案例代码
1 数据库导出 mongoexport -d dbName -c collectionName -o ./data.js 得到data.js,现格式如下 {"_id":" ...
- mongo 改字段名_一日一技:修改MongoDB集合中的字段名
一日一技:修改MongoDB集合中的字段名 一日一技是一个每天更新的栏目,旨在使用3分钟的时间让你每天都有新的进步. 在我们使用MongoDB的过程中,经常会出现修改数据的情况.我们一般使用 upda ...
- MongoDB学习笔记~MongoDB实体中的值对象
回到目录 注意,这里说的值对象是指在MongoDB实体类中的,并不是DDD中的值对象,不过,两者也是联系,就是它是对类的补充,自己本身没有存在的价值,而在值对象中,也是不需要有主键Id的,这与DDD也 ...
- python爬取音乐并保存_python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
爬取TOP500的音乐信息,包括排名情况.歌曲名.歌曲时间. 网页版酷狗不能手动翻页进行下一步的浏览,仔细观察第一页的URL: 这里尝试将1改为2,再进行浏览,恰好是第二页的信息,再改为3,恰好是第三 ...
- Pandas的学习(读取mongodb数据库集合到DataFrame,将DataFrame类型数据保存到mongodb数据库中)
1.读取mongodb数据库集合到DataFrame import pymongo import pandas as pdclient = pymongo.MongoClient("数据库连 ...
- 如何将存储在MongoDB数据库中的数据导出到Excel中?
将MongoDB数据库中的数据导出到Excel中,只需以下几个步骤: (1)首先,打开MongoDB安装目录下的bin文件夹,(C:\Program Files (x86)\MongoDB\Serve ...
- mongodb数据库中插入数据
mongodb数据库中插入数据 一:connection 访问集合: 在mongodb数据库中,数据是存储在许多数据集合中,可以使用数据库对象的collection方法访问一个集合.该方法使用如下: ...
- brew下载的mysql卸载_Mac中mongoDB的安装与卸载步骤详解
前言 MongoDB 是一个基于分布式文件存储的数据库,旨在为 web 应用提供可扩展的高性能数据存储解决方案.本文主要介绍的是关于在mac中安装卸载mongoDB数据库的方法,更多关于mongoDB ...
- linux php7 mongodb,CentOS 7下安装配置PHP7跟LAMP及MongoDB和Redis
CentOS 7下安装配置PHP7跟LAMP及MongoDB和Redis 我是想能yum就yum,所有软件的版本一直会升级,注意自己当时的版本是不是已经更新了. 首先装CentOS 7 装好cento ...
- 开启docker中MongoDB的认证授权
开启docker中MongoDB的认证授权 思路 开启MongoDB服务后,默认是没有权限验证的.直接通过IP加端口就可以远程访问数据库,并对数据库进行任意操作.下面介绍一下如何开启docker中Mo ...
最新文章
- main函数参数,在VS中向命令行添加参数的方法
- 内推 58 人拿到微软 offer!这位大佬有多强?
- 人群分割--Fully Convolutional Neural Networks for Crowd Segmentation
- 鼠标控制,扇形的大小
- java 空格乱码_java 中文乱码以及空格乱码解决方案总结
- SAP方丈-写给新手的SAP成本核算流程
- Django 3.2.5博客开发教程:HelloWorld欢迎页面
- JAVA——保持cookie登录状态的HttpClient封装工具类
- Bootstrap4+MySQL前后端综合实训-Day04-AM【新闻管理手机端页面+数据库操作(PowerDesigner 图形化数据库设计软件、SQLyog软件)】
- 工作83:wacch的使用
- mysql gtid 主主_mysql GTID主从复制(主库在线,添加新丛库)
- 使用sqoop从Oracle或mysql抽取数据到HDFS遇到的报错及解决
- java IoT物联网server 读取javascript协议配置文件
- MVC-通过对象获取整个表单内容
- HTML5开发手机项目总结
- winform使用fastreport制作报表(二)使用
- 谷歌android q 安装,谷歌修复了Pixel智能机安装Android Q Beta 4后循环重启的bug
- 逆矩阵在密码学中的应用(希尔密码原理)
- Java lambda表达式实现List转Map
- python中append函数的用法