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

Eine Einführung in eine php7+mongodb-Dreiparteienklasse

不言
不言Original
2018-09-10 14:43:223053Durchsuche

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);

Sammlung abrufen

$collection = $client->selectCollection('test','test');

Ein Datenelement abrufen

$data = $collection->findOne(['id'=>1]);

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);

Duplikate entfernen

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

Ein Datenelement einfügen

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

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());

Ein Stück aktualisieren

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

Mehrere Teile aktualisieren

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

Eins löschen Stück

$ret = $collection->deleteOne(array('id' => 2));

Mehrere Elemente löschen

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

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);
}

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!

Stellungnahme:
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