導航:首頁 > 編程語言 > phpmongodb累加

phpmongodb累加

發布時間:2023-07-31 23:18:14

php7.1往mongodb 寫NumberLong和NumberInt怎麼處理

解決方案:可以先對數據進行轉換,轉換完後再插入到資料庫
例如:
$spec = array(
'name' => '張三',
'state' => new MongoInt32(100)
);

$spec = array(
'name' => '張三',
'state' => new MongoInt64(100) //NumberLong
)

Ⅱ thinkphp6 版本 mongodb 連表查詢 案例

# https://www.cnblogs.com/cangqinglang/p/14858131.html
public function index(){

// 方法1 您可以使用 $toObjectId聚合實現此目的,該聚合僅將字元串ID轉換為mongoose objectId
// https://blog.csdn.net/az9996/article/details/110141289
// 多表查詢 https://blog.csdn.net/eric_to/article/details/90093806

$pipeline = [
['$addFields'=>['company_id'=>['$toObjectId'=>'$company_id']]],
['$match'=>['$expr'=>['$eq'=>["\$company_id", "$\$company_Id"]]]],
];
$pipelines = [
// ['$match'=>["_id"=>new \MongoDB\BSON\ObjectId("5cb7e580a6c98abc468b458b")]],
// ['$match'=>["name"=>"xxx限公司"]],
[
'$lookup'=>[
'from'=>'oa_company_member_pay',
"let"=>["company_Id"=>"\$_id" ],
"pipeline"=>$pipeline,
'as'=>'company_pay'
],
]
];
// php 執行 產生了 2571 條數據 但是 用 db.runCommand() 執行 列印的 sql 語句 只有 101 條記錄
mp(Db::connect('mongo')->name('oa_company')->cmd([
'aggregate'=>'oa_company',
'pipeline'=>$pipelines,
'explain'=>false,
]));

mp(Db::connect('mongo')->getLastSql());

// 以下 mongodb sql 在 資料庫 查詢 通過 有 2571 條記錄
// db.getCollection("oa_company").aggregate([
// {
// "$lookup": {
// "from": "oa_company_member_pay",
// "let": { "company_Id": "$_id" },
// "pipeline": [
// { '$addFields': { "company_id": { "$toObjectId": "$company_id" }}},
// { "$match": { "$expr": { "$eq": [ "$company_id", "$$company_Id" ] } } }
// ],
// "as": "company_member_pay"
// }
// }
// ])
// 以下 mongodb sql 在 資料庫 查詢 通過 只有 101 條記錄
// db.runCommand({
// "aggregate":"oa_company",
// "pipeline":[
// {
// "$lookup":{
// "from": "oa_company_member_pay",
// "let": { "company_Id": "$_id" },
// "pipeline": [
// { '$addFields': { "company_id": { "$toObjectId": "$company_id" }}},
// { "$match": { "$expr": { "$eq": [ "$company_id", "$$company_Id" ] } } }
// ],
// "as": "company_member_pay"
// }

// }
// ],
// "explain":false
// })

// 方法2 或者使用$toString聚合 可以通過 2571

// db.getCollection('oa_company').aggregate([
// { "$addFields": { "companyidStr": { "$toString": "$_id" }}},
// { "$lookup": {
// "from": "oa_company_member_pay",
// "localField": "companyidStr",
// "foreignField": "company_id",
// "as": "pay"
// }}
// ])
/*
$pipelines = [
// ['$match'=>["_id"=>new \MongoDB\BSON\ObjectId("5cb7e580a6c98abc468b458b")]],
// ['$match'=>["name"=>"xxx有限公司"]],
['$addFields'=>['companyidStr'=>['$toString'=>'$_id']]],
[
'$lookup'=>[
'from'=>'oa_company_member_pay',
'localField'=>'companyidStr',
'foreignField'=>'company_id',
'as'=>'company_pay'
],
]
];
// php 執行 產生了 2571 條數據 但是 用 db.runCommand() 執行 列印的 sql 語句 只有 101 條記錄
mp(Db::connect('mongo')->name('oa_company')->cmd([
'aggregate'=>'oa_company',
'pipeline'=>$pipelines,
'explain'=>false,
]));

mp(Db::connect('mongo')->getLastSql());

// db.cmd({"aggregate":"oa_company","pipeline":[{"$addFields":{"companyidStr":{"$toString":"$_id"}}},{"$lookup":{"from":"oa_company_member_pay","localField":"companyidStr","foreignField":"company_id","as":"company_pay"}}],"explain":false});

// 下面 執行 不可以 只有 101 條數據
db.runCommand({"aggregate":"oa_company","pipeline":[{"$addFields":{"companyidStr":{"$toString":"$_id"}}},{"$lookup":{"from":"oa_company_member_pay","localField":"companyidStr","foreignField":"company_id","as":"company_pay"}}],"explain":false});

*/

}

Ⅲ 應知道哪些PHP資料庫的基礎知識

這個問題問得有點模糊,什麼叫PHP資料庫?應該是PHP操作資料庫吧。如果是說PHP操作資料庫的話,那你應該了解如下內容:

1、市面上有哪些資料庫。市面上有很多資料庫,既有SQL型的資料庫,如MySql、SQLSever,也有Nosql型資料庫,如Redis、Mongodb

2、PHP可以操作哪些資料庫。PHP基本上可以操作市面上的所有資料庫。

3、PHP是如何操作資料庫的。PHP操作資料庫是有兩種方式,一種是使用PHP中對應資料庫的擴展,如操作mysql,PHP可以使用Mysqli擴展;另一種是物伏使用PDO擴展和對應的資料庫驅動。

4、這些資料庫擴展如何安裝啟動的。通常一些常見的資料庫的擴展PHP源碼是有包含的,如PDO、MySql,所以像這種你盯逗只需要在安裝PHP時,通過設置幾個參數來啟用就好,但像Redis、Mongodb等這些PHP源碼里沒有包含,所以在安裝好PHP後,你需要先下載這些擴展,然後編譯,最後在php.ini文件里開啟。

5、如何使用PHP代碼操作這些資料庫。在罩則攜安裝好對應的擴展後,你基本上就可以使用PHP代碼操作資料庫了,如連接資料庫、執行資料庫操作、關閉資料庫,但具體怎麼寫,可以參考對應擴展的開發文檔,一般文檔都有明確說明。

了解了以上幾點,你就可以使用PHP操作資料庫了

Ⅳ php如何實現的mongoDB單例模式操作類

class Mongo_db{ private static $cli; /** * 不允許初始化 */ private function __construct() { $config = Config::get('config.mongo_config'); if(empty($config)){ $this->throwError('無法連接資料庫!'); } if (!empty($config["user_name"])) { $this->mongo = new MongoClient("mongodb://{$config['user_name']}:{$config['password']}@{$config['host']}:{$config['port']}"); }else { $this->mongo = new MongoClient($config['host'] . ':' . $config['port']); } } /** * 單例模式 * @return Mongo|null */ public static function cli(){ if(!(self::$cli instanceof self)){ self::$cli = new self(); } return self::$cli->mongo; }}$mongo = Mongo_db::cli()->test->mycollection;

閱讀全文

與phpmongodb累加相關的資料

熱點內容
在健康青島App掛號怎麼查詢 瀏覽:267
普通人上網用的是什麼伺服器 瀏覽:451
python安裝了找不著 瀏覽:179
常微分第三版答案pdf 瀏覽:262
安卓機qq怎麼開懸浮窗 瀏覽:61
備孕三年了怎麼緩解壓力大 瀏覽:741
登錄阿里雲伺服器黑屏 瀏覽:334
匿名元組Python 瀏覽:723
華為運動健康存儲的文件夾 瀏覽:520
cad正多邊形命令 瀏覽:461
壓縮比150能加97油嗎 瀏覽:397
linux新建群在哪個文件夾 瀏覽:794
韻達快運app在哪裡簽收 瀏覽:336
阿里雲伺服器如何綁定備案域名 瀏覽:273
單片機用什麼鍵盤好 瀏覽:25
android動畫面試 瀏覽:309
pdf無法刪除 瀏覽:90
ftp刪除文件java 瀏覽:89
裂變棋牌源碼 瀏覽:87
邀月命令江別鶴退婚 瀏覽:656