ホームページ バックエンド開発 PHPチュートリアル mongodb カプセル化のいくつかの方法を共有する

mongodb カプセル化のいくつかの方法を共有する

Apr 18, 2018 am 10:35 AM
mongodb いくつかの 方法

この記事の内容は、mongodb のカプセル化のいくつかの方法を共有することです。これは、必要な友人に参照していただくために共有します。これは php5.6 用に書かれたものです。上記はそのような実装ではありません。php7mongodb のカプセル化クラスをお持ちの場合は、リンクを送っていただければ確認させていただきます

<?php/**
 * Created by sublime.
 * User: yuepeng
 * Date: 2017/12/1
 * Time: 15:44
 */namespace Lib;use MongoClient;//下面是驱动类,现在没有用到,我的版本php5.5,如果是php7就要用到这些类use MongoDB\BSON\ObjectID;use MongoDB\Driver\BulkWrite;use MongoDB\Driver\Command;use MongoDB\Driver\Cursor;use MongoDB\Driver\Exception\AuthenticationException;use MongoDB\Driver\Exception\BulkWriteException;use MongoDB\Driver\Exception\ConnectionException;use MongoDB\Driver\Exception\InvalidArgumentException;use MongoDB\Driver\Exception\RuntimeException;use MongoDB\Driver\Manager;use MongoDB\Driver\Query as MongoQuery;use MongoDB\Driver\ReadPreference;use MongoDB\Driver\WriteConcern;/**
 * PHP操作mongodb数据库操作类
 */class MongoDb {
    protected $database    = &#39;&#39;;    protected $mo;    /**
     * 构造方法
     */
    public function __construct() {
        $database = DBNAME;        $mongo = $this->getConnect(DBSERVER, DBUSER, DBPASS, DBPORT);        $this->database = $mongo->$database;
    }    /**
     * 数据库单例方法
     * @param $server
     * @param $user
     * @param $password
     * @param $port
     * test 测试
     * @return Mongo
     */
    /*public function getConnect($server, $user, $password, $port)
    {
        // echo "mongodb://{$server}:{$port}";die;
        // $mongo = new MongoClient("mongodb://{$server}:{$port}");
        $mongo = new MongoClient("mongodb://{$server}:{$port}");
        return $mongo;
    }*/
    /**
     * 数据库单例方法
     * @param $server
     * @param $user
     * @param $password
     * @param $port
     * @return Mongo
     */
    public function getConnect($server, $user, $password, $port) {
        if (isset($this->mo)) {            return $this->mo;
        } else {            if (!empty($server)) {                if (!empty($port)) {                    if (!empty($user) && !empty($password)) {                        $this->mo = new MongoClient("mongodb://{$user}:{$password}@{$server}:{$port}");
                    } else {                        $this->mo = new MongoClient("mongodb://{$server}:{$port}");
                    }
                } else {                    $this->mo = new MongoClient("mongodb://{$server}");
                }
            } else {                $this->mo = new MongoClient();
            }            return $this->mo;
        }
    }    /**
     * 查询表中所有数据
     * @param $table
     * @param array $where
     * @param array $sort
     * @param string $limit
     * @param string $skip
     * @return array|int
     */
    public function getAll($table, $where = array(), $sort = array(), $limit = &#39;&#39;, $skip = &#39;&#39;) {
        if (!empty($where)) {            $data = $this->database->$table->find($where);
        } else {            $data = $this->database->$table->find();
        }        if (!empty($sort)) {            $data = $data->sort($sort);
        }        if (!empty($limit)) {            $data = $data->limit($limit);
        }        if (!empty($skip)) {            $data = $data->skip($skip);
        }        $newData = array();        while ($data->hasNext()) {            $newData[] = $data->getNext();
        }        if (count($newData) == 0) {            return 0;
        }        return $newData;
    }    /**
     * 查询表中所有数据,将_id 对象变成数组
     * @param $table
     * @param array $where
     * @param array $sort
     * @param string $limit
     * @param string $skip
     * @return array
     */
    public function getAllArray($table, $where = array(), $sort = array(), $limit = &#39;&#39;, $skip = &#39;&#39;) {
        if (!empty($where)) {            $data = $this->database->$table->find($where);
        } else {            $data = $this->database->$table->find();
        }        if (!empty($sort)) {            $data = $data->sort($sort);
        }        if (!empty($limit)) {            $data = $data->limit($limit);
        }        if (!empty($skip)) {            $data = $data->skip($skip);
        }        $newData = array();        while ($data->hasNext()) {            $newData[] = $data->getNext();
        }        if (count($newData) == 0) {            return 0;
        }        foreach ($newData as $key => $val) {            $id = $val[&#39;_id&#39;]->{&#39;$id&#39;};            $newData[$key][&#39;_id&#39;] = $id;
        }        return $newData;
    }    /**
     * 查询指定一条数据
     * @param $table
     * @param array $where
     * @return int
     */
    public function getOne($table, $where = array()) {
        if (!empty($where)) {            $data = $this->database->$table->findOne($where);
        } else {            $data = $this->database->$table->findOne();
        }        return $data;
    }    /**
     * 统计个数
     * @param $table
     * @param array $where
     * @return mixed
     */
    public function getCount($table, $where = array()) {
        if (!empty($where)) {            $data = $this->database->$table->find($where)->count();
        } else {            $data = $this->database->$table->find()->count();
        }        return $data;
    }    /**
     * 直接执行mongo命令
     * @param $sql
     * @return array
     */
    public function toExcute($sql) {
        $result = $this->database->execute($sql);        return $result;
    }    /**
     * 分组统计个数
     * @param $table
     * @param $where
     * @param $field
     */
    public function groupCount($table, $where, $field) {
        $cond = array(            array(                &#39;$match&#39; => $where,
            ),            array(                &#39;$group&#39; => array(                    &#39;_id&#39; => &#39;$&#39; . $field,                    &#39;count&#39; => array(&#39;$sum&#39; => 1),
                ),
            ),            array(                &#39;$sort&#39; => array("count" => -1),
            ),
        );        $this->database->$table->aggregate($cond);
    }    /**
     * 删除数据
     * @param $table
     * @param $where
     * @return array|bool
     */
    public function toDelete($table, $where) {
        $re = $this->database->$table->remove($where);        return $re;
    }    /**
     * 插入数据
     * @param $table
     * @param $data
     * @return array|bool
     */
    public function toInsert($table, $data) {
        $re = $this->database->$table->insert($data);        return $re;
    }    /**
     * 更新数据
     * @param $table
     * @param $where
     * @param $data
     * @return bool
     */
    public function toUpdate($table, $where, $data) {
        $re = $this->database->$table->update($where, array(&#39;$set&#39; => $data));        return $re;
    }    /**
     * 获取唯一数据
     * @param $table
     * @param $key
     * @return array
     */
    public function distinctData($table, $key, $query = array()) {
        if (!empty($query)) {            $where = array(&#39;distinct&#39; => $table, &#39;key&#39; => $key, &#39;query&#39; => $query);
        } else {            $where = array(&#39;distinct&#39; => $table, &#39;key&#39; => $key);
        }        $data = $this->database->command($where);        return $data[&#39;values&#39;];
    }
}?>
ログイン後にコピー

関連する推奨事項:

php-mongodb の拡張使用法

以上がmongodb カプセル化のいくつかの方法を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PUKのロックを解除する方法を簡単に学びます(携帯電話のロック画面の問題を簡単に解決します) PUKのロックを解除する方法を簡単に学びます(携帯電話のロック画面の問題を簡単に解決します) Jun 01, 2024 pm 01:38 PM

電話機の使用中に、パスワードを忘れたり、間違ったパスワードを入力したりして、ロックを解除できないという恥ずかしい状況に遭遇することがよくあります。携帯電話を使用する権利を取り戻しましょう。PUK ロック解除テクニックは、これらの問題を簡単に解決するのに役立ちます。また、読者が携帯電話のロック画面の問題にうまく対処できるようにするための実践的なヒントも提供します。この記事では、PUK のロックを解除する最も簡単な方法を説明し、PUK ロック解除の基本的な概念と手順を紹介します。パラグラフ 1. PUK ロック解除とは何ですか? PUK コードは、携帯電話カード上の特別なコードであり、携帯電話のロック画面の問題を解決するために使用される技術であり、SIM カードの PIN コードのロックを解除するために使用されます。 PUK ロック解除の基本概念を理解することが、このテクニックを学ぶ第一歩です。 2. PUK コードを取得するにはどうすればよいですか?電話画面が表示されます

net4.0の用途は何ですか net4.0の用途は何ですか May 10, 2024 am 01:09 AM

.NET 4.0 はさまざまなアプリケーションの作成に使用され、オブジェクト指向プログラミング、柔軟性、強力なアーキテクチャ、クラウド コンピューティングの統合、パフォーマンスの最適化、広範なライブラリ、セキュリティ、スケーラビリティ、データ アクセス、モバイルなどの豊富な機能をアプリケーション開発者に提供します。開発サポート。

DebianでMongoDB自動拡張を構成する方法 DebianでMongoDB自動拡張を構成する方法 Apr 02, 2025 am 07:36 AM

この記事では、自動拡張を実現するためにDebianシステムでMongodbを構成する方法を紹介します。主な手順には、Mongodbレプリカセットとディスクスペース監視のセットアップが含まれます。 1。MongoDBのインストール最初に、MongoDBがDebianシステムにインストールされていることを確認してください。次のコマンドを使用してインストールします。sudoaptupdatesudoaptinstinstall-yymongodb-org2。mongodbレプリカセットMongodbレプリカセットの構成により、自動容量拡張を達成するための基礎となる高可用性とデータ冗長性が保証されます。 Mongodbサービスを開始:Sudosystemctlstartmongodsudosys

作曲家を使用して、推奨システムのジレンマを解決する:Andres-Montanez/推奨 作曲家を使用して、推奨システムのジレンマを解決する:Andres-Montanez/推奨 Apr 18, 2025 am 11:48 AM

eコマースのWebサイトを開発するとき、私は困難な問題に遭遇しました。ユーザーにパーソナライズされた製品の推奨事項を提供する方法です。当初、私はいくつかの簡単な推奨アルゴリズムを試しましたが、結果は理想的ではなく、ユーザーの満足度も影響を受けました。推奨システムの精度と効率を改善するために、より専門的なソリューションを採用することにしました。最後に、Andres-Montanez/Adcumentations Bundleを介してAndres-Montanez/Bundleをインストールしました。これは、問題を解決しただけでなく、推奨システムのパフォーマンスを大幅に改善しました。次の住所から作曲家を学ぶことができます。

DebianでMongodbの高可用性を確保する方法 DebianでMongodbの高可用性を確保する方法 Apr 02, 2025 am 07:21 AM

この記事では、Debianシステムで非常に利用可能なMongoDBデータベースを構築する方法について説明します。データのセキュリティとサービスが引き続き動作し続けるようにするための複数の方法を探ります。キー戦略:レプリカセット:レプリカセット:レプリカセットを使用して、データの冗長性と自動フェールオーバーを実現します。マスターノードが失敗すると、レプリカセットが自動的に新しいマスターノードを選択して、サービスの継続的な可用性を確保します。データのバックアップと回復:MongoDumpコマンドを定期的に使用してデータベースをバックアップし、データ損失のリスクに対処するために効果的な回復戦略を策定します。監視とアラーム:監視ツール(プロメテウス、グラファナなど)を展開して、MongoDBの実行ステータスをリアルタイムで監視し、

MongoDBデータベースパスワードを表示するNAVICATの方法 MongoDBデータベースパスワードを表示するNAVICATの方法 Apr 08, 2025 pm 09:39 PM

Hash値として保存されているため、Navicatを介してMongoDBパスワードを直接表示することは不可能です。紛失したパスワードを取得する方法:1。パスワードのリセット。 2。構成ファイルを確認します(ハッシュ値が含まれる場合があります)。 3.コードを確認します(パスワードをハードコードできます)。

Centos Mongodbバックアップ戦略とは何ですか? Centos Mongodbバックアップ戦略とは何ですか? Apr 14, 2025 pm 04:51 PM

MongoDB効率的なバックアップ戦略の詳細な説明CENTOSシステムでは、この記事では、データセキュリティとビジネスの継続性を確保するために、CENTOSシステムにMongoDBバックアップを実装するためのさまざまな戦略を詳細に紹介します。 Dockerコンテナ環境でのマニュアルバックアップ、タイミング付きバックアップ、自動スクリプトバックアップ、バックアップメソッドをカバーし、バックアップファイル管理のベストプラクティスを提供します。マニュアルバックアップ:MongoDumpコマンドを使用して、マニュアルフルバックアップを実行します。たとえば、Mongodump-Hlocalhost:27017-U Username-P Password-Dデータベース名-O/バックアップディレクトリこのコマンドは、指定されたデータベースのデータとメタデータを指定されたバックアップディレクトリにエクスポートします。

Pi Coinのメジャーアップデート:Pi Bankが来ています! Pi Coinのメジャーアップデート:Pi Bankが来ています! Mar 03, 2025 pm 06:18 PM

Pinetworkは、革新的なモバイルバンキングプラットフォームであるPibankを立ち上げようとしています! Pinetworkは本日、Pibankと呼ばれるElmahrosa(Face)Pimisrbankのメジャーアップデートをリリースしました。これは、従来の銀行サービスと、フィアット通貨の原子交換と暗号通貨の原子交換を実現します(resuptocursisを使用するなど、聖職者のような聖職者など、 DC)。ピバンクの魅力は何ですか?見つけましょう!ピバンクの主な機能:銀行口座と暗号通貨資産のワンストップ管理。リアルタイムトランザクションをサポートし、生​​物種を採用します

See all articles