componets配置:

'mongodb' => [
'class' => '\yii\mongodb\Connection',
'dsn' => 'mongodb://test:123456@127.0.0.1:27017/yiimongodb',
],

  

 

控制器:

<?php
namespace frontend\controllers;
use Yii;
use yii\helpers\Url;
use yii\mongodb\Query;
use yii\web\Controller;
use yii\data\ActiveDataProvider;
use frontend\models\Customer;
class MonController extends Controller
{
public function actionIndex()
{
$collection = Yii::$app->mongodb->getCollection ( 'customer' );
$res = $collection->insert ( [
'name' => 'John Smith22',
'status' => 2
] );
var_dump($res);
}
public function actionList()
{
$query = new Query ();
$query->select ( [
'name',
'status'
] )->from ( 'customer' )->offset ( 10 )->limit ( 10 );
$rows = $query->all ();
var_dump ( $rows );
}
public function actionView()
{
$query = new Query ();
$row = $query->from ( 'customer' )->one ();
echo Url::toRoute ( [
'item/update',
'id' => ( string ) $row ['_id']
] );
var_dump ( $row ['_id'] );
var_dump ( ( string ) $row ['_id'] );
}
public function actionFind()
{
$provider = new ActiveDataProvider ( [
'query' => Customer::find (),
'pagination' => [
'pageSize' => 10
]
] );
$models = $provider->getModels ();
var_dump ( $models );
}
public function actionQuery()
{
$query = new Query ();
$query->from ( 'customer' )->where ( [
'status' => 2
] );
$provider = new ActiveDataProvider ( [
'query' => $query,
'pagination' => [
'pageSize' => 10
]
] );
$models = $provider->getModels ();
var_dump ( $models );
}
public function actionSave()
{
$res = Customer::saveInfo ();
var_dump ( $res );
}
}

  

 

模型:

<?php
namespace frontend\models;
use yii\mongodb\ActiveRecord;
class Customer extends ActiveRecord
{
public static function collectionName()
{
return 'customer';
}
public function saveInfo()
{
$customer = new Customer ();
$customer->name = '111';
$customer->email = '222';
$customer->insert ();
return $customer;
}
public function attributes()
{
return [
'_id',
'name',
'email',
'address',
'status'
];
}
}

  

 

YII2的mongodb拓展下载:

https://github.com/yiisoft/yii2-mongodb

中文网址:

http://www.runoob.com/

http://www.mongoing.com/

http://www.cnblogs.com/libingql/archive/2011/06/09/2076440.html

常用命令 ,同mysql,eg:

db.createUser({"user":"test","pwd":"123456","roles":["readWrite","dbAdmin"]})

show users;

show dbs;

db.version();

db.stats();

use yiimongodb;

show collections;

  

YII2操作mongodb笔记(转)的更多相关文章

  1. PHP操作mongoDB 笔记

    转自 http://blog.csdn.net/black_ox/article/details/22678747 命令也可以在参考http://www.jb51.net/article/51601. ...

  2. mongoose 操作 mongodb 笔记 (自己的笔记,自己看的)

    mongodb下载/安装 mongoose   npm install --save mongoose mongoose 数据库连接 const mongoose = require('mongoos ...

  3. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  4. MongoDB学习笔记:Python 操作MongoDB

    MongoDB学习笔记:Python 操作MongoDB   Pymongo 安装 安装pymongopip install pymongoPyMongo是驱动程序,使python程序能够使用Mong ...

  5. Python学习笔记_03:简单操作MongoDB数据库

    目录 1. 插入文档 2. 查询文档 3. 更新文档 4. 删除文档   1. 插入文档 # -*- coding: UTF-8 -*- import datetime from pymongo im ...

  6. Nodejs学习笔记(二)--- 操作MongoDB数据库

    最近看了一些关于mongodb的文章,然后就想知道nodeJS是怎么连接的所以我就尝试去了解了一波(这个菜鸟驿站这个网站还不错,虽然知识文档不是最新的,但是还是蛮好的: 顺便官网地址是这个哦:http ...

  7. PHP 操作Mongodb 实例

    缩略版本<?php //1.连接MongoDB $mongo = new Mongo(); $mongo = new Mongo("mongodb://username:passwor ...

  8. nodejs 操作mongodb, 增删改查

    很久没有学node了,之前书看了一半,今天继续学发现版本问题很坑爹,按书例子执行一堆错误.想学nodejs操作db,百度半天,一堆sb写神马鸟玩儿?简简单单写一大堆还运行不了的.需要代码也是看别人写的 ...

  9. 在MVC模式下通过Jqgrid表格操作MongoDB数据

    看到下图,是通过Jqgrid实现表格数据的基本增删查改的操作.表格数据增删改是一般企业应用系统开发的常见功能,不过不同的是这个表格数据来源是非关系型的数据库MongoDB.nosql虽然概念新颖,但是 ...

随机推荐

  1. ajax跨域原理以及解决方案

    说明 跨域主要是由于浏览器的“同源策略”引起,分为多种类型,本文主要探讨Ajax请求跨域问题 前言 强烈推荐阅读参考来源中的文章,能够快速帮助了解跨域的原理 参考来源 本文参考了以下来源 浏览器同源政 ...

  2. 【LintCode】判断一个字符串是否包含另一个字符串的所有字符

    问题描述: 比较两个字符串A和B,确定A中是否包含B中所有的字符.字符串A和B中的字符都是 大写字母. 样例 给出 A = "ABCD" B = "ACD",返 ...

  3. Android中对内存和外存的读写

    首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的. public ...

  4. BZOJ 1100: [POI2007]对称轴osi

    1100: [POI2007]对称轴osi Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 630  Solved: 243[Submit][Statu ...

  5. javascript要不要用来处理业务逻辑

    这个问题,我现在才明白该怎样描述这个已经困惑了我很久的问题,在公司做的项目中,js对于数据验证起到了很大的作用,但是这使得整个项目的业务逻辑变得零散,甚至混乱 现在公司里的项目就是这样的.现在再想想, ...

  6. 控制div位于最上层

    前提: 设置了position属性,且为relative,absolute或是fixed: 设置z-index,数值越大,越上,-1为最底层,99999为最顶层

  7. 利用iconv进行文件编码批量原地转换

    将当前目录及其所有子目录中的以 java 为后缀的文件,从 GB18030 转换为 UTF-8: find .  -name "*.java" -exec sh -c " ...

  8. Codeforces Round #389 Div.2 C. Santa Claus and Robot

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  9. FUSE 简介

    编译别人改过的一个 OpenWRT ,发现用到了一个叫 FUSE 的包.感兴趣了解一下. FUSE 是 Filesystem in USErspace 的简称.对于文件系统,经常安装系统.格式化 U ...

  10. Allegro笔记三

    1.设置Gerber导出目录 可以在$Install_Dir/share/pcb/text/env.txt目录里面添加:“set artpath = . ../Gerber/”语句. 其他各种文件夹设 ...