Kongsi kelas mongodb php7 yang sangat berguna!

藏色散人
Lepaskan: 2023-02-18 08:30:01
ke hadapan
1962 orang telah melayarinya

Disebabkan keperluan projek, projek telah dinaik taraf kepada php7. Tetapi selepas menaik taraf, saya mendapati bahawa sambungan mongo tidak lagi tersedia. php7.0Di atas hanya menyokong mongodb sambungan. mongodb Pemacu lanjutan adalah lebih rumit dan tidak jelas untuk digunakan berbanding sambungan monmgo. Saya telah mencarinya dalam talian untuk masa yang lama. Akhirnya jumpa kelas mongodb yang agak ringkas. Sintaks adalah serupa dengan mongo. Jelas dan semula jadi.

Alamat projekhttps://github.com/mongodb/mongo-php-library

Sebab projek itu disumbangkan oleh rakan asing. Jadi tiada dokumen jelas yang boleh dibaca. Berikut adalah beberapa kaedah yang biasa digunakan.

Dapatkan contoh
$uri = "mongodb://username:password@host/database";
$client = new \MongoDB\Client($uri);
Salin selepas log masuk
Dapatkan koleksi
$collection = $client->selectCollection('test','test');
Salin selepas log masuk
Dapatkan satu keping data
$data = $collection->findOne(['id'=>1]);
Salin selepas log masuk
Dapatkan berbilang keping data
$where = ['type'=>1];
$options = array(
    'projection' => array('id' => 1, 'age' => 1, 'name' => -1), // 指定返回哪些字段 1 表示返回 -1 表示不返回
    'sort' => array('id' => -1), // 指定排序字段
    'limit' => 10, // 指定返回的条数
    'skip' => 0, // 指定起始位置
);
$data = $collection->find($where,$options)->toArray();
var_dump($data);
Salin selepas log masuk
Alih keluar pendua
$fileName = 'name';
$where = ['id' => ['$lt' => 100]]
$ret = $this->collection->distinct($fileName,$where);
Salin selepas log masuk
Masukkan satu keping data
$data = array(
    'id' => 2,
    'age' => 20,
    'name' => '张三'
);
$ret = $collection->insertOne($data);
$id=$ret->getInsertedId();
Salin selepas log masuk
Sisipan kelompok
$data = array(
    ['id' => 1, 'age' => 21, 'name' => '1xiaoli'],
    ['id' => 2, 'age' => 22, 'name' => '2xiaoli'],
    ['id' => 3, 'age' => 23, 'name' => '3xiaoli'],
    ['id' => 4, 'age' => 26, 'name' => '4xiaoli'],
    ['id' => 5, 'age' => 24, 'name' => '5xiaoli'],
    ['id' => 6, 'age' => 25, 'name' => '6xiaoli'],
);
$ret = $collection->insertMany($data);
# 返回插入id
var_dump($ret->getInsertedIds());
Salin selepas log masuk
Kemas kini satu bahagian
$ret = $collection->updateOne(array('id' => 2), array('$set' => array('age' => 56)));
Salin selepas log masuk
Kemas kini banyak Artikel
$ret = $collection->updateMany(array('id' => ['$gt' => 1]), array('$set' => array('age' => 56, 'name' => 'x')));
Salin selepas log masuk
Padam satu item
$ret = $collection->deleteOne(array('id' => 2));
Salin selepas log masuk
Padam berbilang item
$collection->deleteMany(array('id' => array('$in' => array(1, 2))));
Salin selepas log masuk
Penggabungan
$ops = [
    [
        '$match' =>['type'=>['$in'=>[2,4]]]
    ],
    [
        '$sort' => ['list.create_time' => -1]  //sort顺序不能变,否则会造成排序混乱,注意先排序再分页
    ],
    [
        '$skip' => 0
    ],
    [
        '$limit' => 20000
    ],
];
$data = $collection->aggregate($ops);
foreach ($data as $document)
{
    var_dump($document);
}
Salin selepas log masuk

Disyorkan: "Tutorial PHP7

Atas ialah kandungan terperinci Kongsi kelas mongodb php7 yang sangat berguna!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:segmentfault.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!