mongodb 在yii2 框架中的使用(本人在框架中做了功能擴充套件,非非官方下載的yii2的操作)
1.
在\common\mongo\中增加一個檔案,這個檔名使用mongodb中的表明作為名字
譬如:mongodb中collection的表名為:catalog_product
增加檔案 \common\mongo\catalog_product.php
檔案內部的結構:
<?php return [ //array作為識別,因此,不可以吧mongodb的欄位定義為array 'catalog_product'=>[ 'collection'=>'catalog_product', 'file'=>'catalog/product', 'info'=>[ 'sku'=>'string', 'weight'=>'float', 'status'=>'float', 'created_at'=>'date', 'url_key'=>'string', 'visibility'=>'float', 'price'=>'float', 'special_price'=>'float', 'special_from_date'=>'date', 'special_to_date'=>'date', 'image'=>'string', 'media_gallery'=>[ 'array'=>[ 'imgurl'=>'string', 'label'=>'string', 'sort_order'=>'string', ] ], 'sell_number'=>'int', 'qty'=>'int', 'is_in_stock'=>'int', 'categories'=>'arrayInt', ], ] ];
因為這個檔案是為了定義mongodb的欄位型別,在操作資料庫的時候,自動轉換型別
因此string的可以免定義的
file定義的是模型檔案路徑,catalog/product代表對應的模型路徑為:\common\models\catalog\Product.php
info定義的是欄位的型別,string代表是字元型別,float代表的是浮點型別,int代表是整型
date代表的是日期型別,arrayInt代表是整型陣列,如果是多維陣列,可以參考:media_gallery
如果多維陣列中都是字串型別,可以直接省略定義,因為字串型別可以省略轉換。
<?php namespace common\models\catalog; use Yii; use backend\models\core\Mongodb; class Product extends Mongodb { public function init(){ parent::init(); } public function __construct($collection_name){ $this->_collection_name = $collection_name ; } }
此檔案只需要把類名和namespace更改就好。
這樣就可以直接呼叫使用了
在controller,block中,可以直接使用:
$model = $this->getModel('catalog_product');
$query = $this->getModelQeury('catalog_product');
在其他的地方可以通過Help類呼叫:
use common\models\core\Help; $model = Help::getModel('catalog_product'); $query = Help::getModelQuery('catalog_product');
更新:
$data_one = $model::findOneConvert() 得到資料(陣列)
$data_one['password'] = $password;
$data_one['first_name'] = $first_name;
$data_one['last_name'] = $last_name;
$model->save($data_one);
插入:
在mongodb中的更新和插入,只要看傳入陣列中是否存在_id,如果存在,則更新,如果不存在,則插入
$data_one['first_name'] = $first_name;
$data_one['last_name'] = $last_name;
$model->save($data_one);
查詢:
$query->where(['_id' => ["?in"=>$productIds]]);
$query->limit = 10
$query->offset = 20
$query->orderBy = ['name'=>SORT_DESC]
$data = $query->all();
刪除:
$model->remove( ['_id'=> ['?in'=> $ids_remove ] ]);
相關推薦
mongodb 在yii2 框架中的使用(本人在框架中做了功能擴充套件,非非官方下載的yii2的操作)
1. 在\common\mongo\中增加一個檔案,這個檔名使用mongodb中的表明作為名字 譬如:mongodb中collection的表名為:catalog_product 增加檔案 \common\mongo\catalog_product.php 檔案內部的結
ASP.NET Core框架揭祕(持續更新中…)
之前寫了一系列關於.NET Core/ASP.NET Core的文章,但是大都是針對RC版本。到了正式的RTM,很多地方都發生了改變,所以我會將之前釋出的文章針對正式版本的.NET Core 1.0進行改寫。除此之外,我還會撰寫一系列與此相關的文章,這些文章以ASP.NET Core為核心,我個人將它們分成三
專案框架搭建用到的第三方框架—3(持續更新中)
專案框架搭建用到的第三方框架—3 QMUI_Android Git地址: https://github.com/QMUI/QMUI_Android 官網: https://qmuiteam.com/android/ Api說明地址 https://qmuitea
HTML5+Bootstrap後臺系統框架集(持續更新中……)
HTML5+Bootstrap後臺系統框架集(更新時間:2017年1月8日。持續更新中……)科普:Bootstrap (Web框架):Bootstrap,來自 Twitter,是目前很受歡迎的前端框架。
mongoDB使用詳解(在node中使用)
資料庫概念 資料庫:資料儲存的倉庫 資料庫就是為我們方便的管理資料的一個平臺,例如對資料的儲存、修改、查詢等都非常的方便。 資料庫分類 資料庫產品有很多,以下是一些常見的資料庫產品: MySQLOracleDB2SqlServerMongoDBetc. 資料庫沒有
TP5中(通過一個表去取另一個表的相對應的名稱)
一個 數據庫實例 分享 tp5 nbsp 網頁 名稱 分享圖片 一個表 1.數據庫實例 2.控制器內,先使數據先使頁面(此控制器內為sign表格) 3.封裝一個方法(通過用戶id獲取名稱,此表為name表格的數據) 4.靜態頁面(調用name表格的內容,與sign表格
IIS https綁定主機頭方法(可實現禁止直接通過IP訪問,好像還可以實現IIS中綁定多個https<是使用多個單域名證書,非多域名證書>)
多個 nbsp app for iis 直接 fig protoc eight 步驟: 打開:%systemroot%\SYSTEM32\inetsrv\config\ 打開:applicationHost.config 查找:<binding protocol="
iOS開發-常用第三方開源框架介紹(絕對夠你用了)
影象: 1.圖片瀏覽控制元件MWPhotoBrowser 實現了一個照片瀏覽器類似 iOS 自帶的相簿應用,可顯示來自手機的圖片或者是網路圖片,可自動從網路下載圖片並進行快取。可對圖片進行縮放等操作。 下載:https:
Android:android的框架區別(網路框架、圖片非同步載入與快取框架、資料框架)特點整理
在我們安卓開發中,很多繁瑣的程式碼會很頭疼,編寫程式的週期會增加,因此很多框架都冒出來了,我們在搞懂底層原理之時,我們更應該學會用一些優秀框架來解決複雜程式碼,和繁瑣的重寫程式碼。因為針對最簡單的case,我只需要提供request url,成功時的callba
Android筆記:Android開發應用框架彙總(MVVP框架介紹)
先來說一下常見的Android框架模式: MVC、MVP、MVVM 這三種框架中,我們耳熟能詳的就是MVC和MVP了吧,接下來我們簡單介紹一下: MVC View:XML佈局檔案。 Model:實體模型(資料的獲取、儲存、資料狀態變化)。 Cont
對linux下程式設計中用到的標頭檔案頭的一些定義及函式進行解譯(本人使用過程中用到過的不明白的定義及函式)
1、typedef unsigned long int pthread_t; 型別定義: typedef unsigned long int pthread_t; //come from /usr/include/bits/pthreadtypes.h 用途:pthread_t用於宣
MongoDB——》聚合查詢(project、match、limit、skip、unwind、group、sort)
版權宣告:本文為博主原創文章,無需授權即可轉載,甚至無需保留以上版權宣告,轉載時請務必註明作者。 https://blog.csdn.net/weixin_43453386/article/details/85065043 MongoDB——》聚合查詢(project、match、
在Java開發做了10年後,推薦此框架,顛覆Java應用
黑馬程式設計師 2018-12-07 10:47:22 為什麼說Spring Boot是顛覆性的呢?因為它徹底改變了Java應用開發的模式。 Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的
前端不懂編譯器,再多框架也無力-JS 編譯器都做了啥?
在寫這篇文章之前,小編工作中從來沒有問過自己這個問題,不就是寫程式碼,編譯器將程式碼編輯成計算機能識別的 01 程式碼,有什麼好了解的。 其實不然,編譯器在將 JS 程式碼變成可執行程式碼,做了很多繁雜的工作,只有深入瞭解背後編譯的原理,我們才能寫出更優質的程式碼,瞭解各種前端框架背後的
在VM虛擬機器中的centos7系統上安裝了某軟體,重啟後可以正常登陸,但登陸後卻是黑屏什麼都看不到
解決辦法: 正常輸入密碼登陸 使用 ctrl+alt+f2 進入centos7的無介面狀態,輸入使用者名稱,密碼登陸 初始化X xinit 啟動X,進入GNOME startx 然後消失的桌面就出現了。 完畢! 如果重新開機
MANIFEST.INF!JAR規範中 META-INF 目錄中內容心得。順帶整理了網上資料,提供地址
Java 產品打包成 JAR 檔案,其中會在 META-INF 目錄下邊存在宣告檔案 MANIFEST.MF 。此檔案內容為 KEY: VALUE ,這樣的一行行內容。以下整理總結了各種標準規範中指定的 KEY 含義。 Manifest-Version 必有,但應該
java中new一個物件jvm做了哪些事情
new一個物件時Jvm做了哪些事情: 之前沒有進行過類載入(1)類載入並初始化類中的靜態屬性(賦預設值,如果靜態屬性有自己賦值,則顯示自己賦的值) (2)執行靜態程式碼塊 之前進行過類載入,則
數組的方法(連接,截取,刪除,插入,替換,以及封裝一個函數)
log clas span 選擇 數組遍歷 p s func 第一個 code 連接兩個數組;concat,形成一個新數組 數組1.concat(數組2,數組1) 返回值:數組 var arr1=[1,2], arr2=[3,4], arr3; arr3=arr1.con
用Html5/CSS3做Winform,一步一步教你搭建CefSharp開發環境(附JavaScript異步調用C#例子,及全部源代碼)上
轉載 界面設計 右鍵 異步 一個 由於 編寫 scrip 調用 本文為雞毛巾原創,原文地址:http://www.cnblogs.com/jimaojin/p/7077131.html,轉載請註明 CefSharp說白了就是Chromium瀏覽器的嵌入式核心,我們用此開發W
課堂練習(條件、循環、函數定義、字符串操作)
身份證 星期 rtl orm range 字符串操作 -1 mat card 畫五角星import turtle for i in range(5): turtle.forward(200) turtle.right(144) 畫同心圓 imp