Heim > Backend-Entwicklung > PHP-Tutorial > Eine Einführung in eine php7+mongodb-Dreiparteienklasse

Eine Einführung in eine php7+mongodb-Dreiparteienklasse

不言
Freigeben: 2023-04-04 06:44:02
Original
3125 Leute haben es durchsucht

Der Inhalt dieses Artikels ist eine Einführung in eine php7+mongodb-Dreiparteienklasse. Er hat einen gewissen Referenzwert. Ich hoffe, er wird für Sie hilfreich sein.

Aufgrund der Projektanforderungen wurde das Projekt auf PHP7 aktualisiert. Nach dem Upgrade stellte ich jedoch fest, dass die Mongo-Erweiterung nicht verwendet werden kann. PHP7.0 und höher unterstützen nur die Mongodb-Erweiterung. Der Mongodb-Erweiterungstreiber ist komplizierter und ausführlicher zu verwenden als die Monmgo-Erweiterung. Ich habe schon lange online danach gesucht. Endlich eine relativ einfache Mongodb-Klasse gefunden. Die Syntax ähnelt der von Mongo. Klar und natürlich.

Projektadresse https://github.com/mongodb/mongo-php-library

Weil das Projekt von ausländischen Freunden beigesteuert wurde. Es gibt also kein klares Dokument, das gelesen werden kann. Hier sind einige häufig verwendete Methoden.

Instanz abrufen

$uri = "mongodb://username:password@host/database";
$client = new \MongoDB\Client($uri);
Nach dem Login kopieren

Sammlung abrufen

$collection = $client->selectCollection('test','test');
Nach dem Login kopieren

Ein Datenelement abrufen

$data = $collection->findOne(['id'=>1]);
Nach dem Login kopieren

Mehrere Datenelemente abrufen

$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);
Nach dem Login kopieren

Duplikate entfernen

$fileName = 'name';
$where = ['id' => ['$lt' => 100]]
$ret = $this->collection->distinct($fileName,$where);
Nach dem Login kopieren

Ein Datenelement einfügen

$data = array(
    'id' => 2,
    'age' => 20,
    'name' => '张三'
);
$ret = $collection->insertOne($data);
$id=$ret->getInsertedId();
Nach dem Login kopieren

Stapeleinfügung

$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());
Nach dem Login kopieren

Ein Stück aktualisieren

$ret = $collection->updateOne(array('id' => 2), array('$set' => array('age' => 56)));
Nach dem Login kopieren

Mehrere Teile aktualisieren

$ret = $collection->updateMany(array('id' => ['$gt' => 1]), array('$set' => array('age' => 56, 'name' => 'x')));
Nach dem Login kopieren

Eins löschen Stück

$ret = $collection->deleteOne(array('id' => 2));
Nach dem Login kopieren

Mehrere Elemente löschen

$collection->deleteMany(array('id' => array('$in' => array(1, 2))));
Nach dem Login kopieren

Aggregation

$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);
}
Nach dem Login kopieren

Verwandte Empfehlungen:

Detaillierte Erklärung zur Implementierung der MongoDB-Fuzzy-Abfrage in PHP7

Mongodb-Operationsklasse implementiert durch PHP, Mongodb implementiert durch PHP

Das obige ist der detaillierte Inhalt vonEine Einführung in eine php7+mongodb-Dreiparteienklasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage