Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan operasi pangkalan data bukan hubungan menggunakan PHP dan MongoDB

Bagaimana untuk melaksanakan operasi pangkalan data bukan hubungan menggunakan PHP dan MongoDB

王林
王林asal
2023-06-25 10:34:381272semak imbas

Dengan pembangunan Internet, jumlah data telah meningkat secara mendadak, dan pangkalan data hubungan tradisional tidak lagi dapat memenuhi sepenuhnya keperluan pemprosesan data. Sebagai teknologi pangkalan data baharu, pangkalan data bukan perhubungan (NoSQL) boleh mengendalikan data besar-besaran dan situasi capaian serentak yang tinggi dengan lebih baik. Antaranya, MongoDB, sebagai salah satu wakil Nosql, menyokong skema data dinamik, berskala tinggi, ketersediaan tinggi dan prestasi tinggi, dan amat sesuai untuk model pembangunan berorientasikan objek. Artikel ini akan memperkenalkan cara menggunakan PHP dan MongoDB untuk melaksanakan operasi pangkalan data bukan perhubungan.

1. Pasang sambungan MongoDB dan PHP

Sebelum menggunakan MongoDB, anda perlu memasang perkhidmatan MongoDB dan sambungan PHP yang sepadan. Untuk pemasangan MongoDB, sila rujuk dokumentasi rasmi dan tidak akan pergi ke butiran di sini. Anda boleh memasang sambungan PHP melalui langkah berikut:

  1. Muat turun sambungan PHP: Muat turun kod sumber versi sambungan MongoDB yang sepadan (https://pecl.php.net/package/mongodb) daripada pegawai PECL laman web dan nyahzipnya.
  2. Kompilasi sambungan PHP: Masukkan folder kod sumber dalam baris arahan dan laksanakan arahan berikut:

    phpize
    ./configure
    make
    make install
  3. Konfigurasikan fail php.ini: Cari fail php.ini dan tambah kandungan berikut:

    extension=mongodb.so
  4. Mulakan Semula Perkhidmatan PHP: Mulakan semula perkhidmatan PHP untuk menjadikan konfigurasi berkuat kuasa Kaedah arahan berbeza mengikut sistem yang berbeza, seperti:

    systemctl restart php-fpm

2. Sambung ke pangkalan data MongoDB

Untuk menyambung ke pangkalan data MongoDB, anda. perlu menggunakan pemacu PHP yang disediakan oleh MongoDB Operasi khusus adalah seperti berikut:

  1. Buat sambungan: Gunakan kelas MongoClient untuk membuat sambungan Parameter pembinanya ialah alamat IP dan nombor port perkhidmatan MongoDB .

    $client = new MongoClient("mongodb://127.0.0.1:27017");
  2. Pilih pangkalan data: Gunakan kaedah selectDB untuk memilih pangkalan data untuk beroperasi.

    $db = $client->selectDB('test');

3. Masukkan data

MongoDB menyokong storan data dalam format JSON, jadi memasukkan data boleh menukar data ke dalam format JSON. Operasi khusus adalah seperti berikut:

  1. Buat dokumen: Gunakan kelas dokumen MongoDB MongoDBBSONDocument untuk mencipta objek dokumen.

    $doc = new MongoDBBSONDocument([
        'name' => '张三',
        'age' => 20,
        'sex' => '男',
        'address' => '北京市',
    ]);
  2. Sisipkan data: Gunakan kaedah insertOne kelas pengumpulan MongoDB MongoCollection untuk memasukkan data.

    $collection = $db->selectCollection('users');
    $collection->insertOne($doc);

4. Data pertanyaan

MongoDB menyokong pelbagai operasi pertanyaan dan pengagregatan yang berkuasa Operasi khusus adalah seperti berikut:

  1. Dokumen pertanyaan: Gunakan kaedah cari untuk membuat pertanyaan dokumen. keadaan pertanyaan, dan yang kedua Setiap parameter adalah pilihan, seperti menanyakan medan tertentu, pengisihan, dsb.

    $collection = $db->selectCollection('users');
    $cursor = $collection->find([
        'age' => ['$gt' => 18]
    ], [
        'projection' => ['name' => 1, 'age' => 1],
        'sort' => ['age' => 1],
    ]);
    foreach ($cursor as $doc) {
        echo $doc['name'] . ' ' . $doc['age'] . "
    ";
    }
  2. Pengendalian pengagregatan: Gunakan kaedah pengagregatan, seperti kaedah agregat, untuk melaksanakan pengiraan pengagregatan berbilang peringkat untuk mencapai keperluan pertanyaan yang kompleks.

    $collection = $db->selectCollection('users');
    $cursor = $collection->aggregate([
        ['$match' => ['age' => ['$gt' => 18]]],
        ['$group' => [
            '_id' => '$sex',
            'count' => ['$sum' => 1]
        ]],
        ['$sort' => ['count' => -1]],
    ]);
    foreach ($cursor as $doc) {
        echo $doc['_id'] . ' ' . $doc['count'] . "
    ";
    }

5. Kemas kini dan padam data

MongoDB menyokong operasi kemas kini dan pemadaman tunggal dan kelompok Operasi khusus adalah seperti berikut:

  1. Kemas kini tunggal: Gunakan kaedah kemas kini Satu bahagian untuk mengemas kini satu data. parameter pertama ialah syarat pertanyaan, Parameter kedua ialah data yang akan dikemas kini.

    $collection = $db->selectCollection('users');
    $collection->updateOne(
        ['name' => '张三'],
        ['$set' => ['age' => 21]]
    );
  2. Berbilang kemas kini: Gunakan kaedah kemas kiniMany untuk mengemas kini data dalam kelompok.

    $collection = $db->selectCollection('users');
    $collection->updateMany(
        ['sex' => '男'],
        ['$inc' => ['age' => 1]]
    );
  3. Pemadaman tunggal: Gunakan kaedah deleteOne untuk memadamkan sekeping data, dengan parameter pertama ialah syarat pertanyaan.

    $collection = $db->selectCollection('users');
    $collection->deleteOne(['name' => '张三']);
  4. Pemadaman berbilang: Gunakan kaedah deleteMany untuk memadam data dalam kelompok.

    $collection = $db->selectCollection('users');
    $collection->deleteMany(['sex' => '男']);

6. Ringkasan

Di atas adalah pengenalan asas untuk menggunakan PHP dan MongoDB untuk melaksanakan operasi pangkalan data bukan perkaitan Kaedah pelaksanaan khusus senario perniagaan yang berbeza mungkin berbeza, dan pembaca boleh menyesuaikan dan mengembangkan mengikut keadaan sebenar. MongoDB menyediakan API operasi yang kaya dan kaedah pengagregatan untuk memenuhi keperluan perniagaan yang kompleks dengan lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan operasi pangkalan data bukan hubungan menggunakan PHP dan MongoDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn