Обновите проект в соответствии с потребностями проекта php 7 。 Но после обновления было обнаружено, что расширения mongo недоступны. php7.0 Вышеуказанная поддержка только mongodb Расширена. и mongodb Для сравнения используются расширенные драйверы mongo Расширение является сложным и многословным. Я долго искал его в Интернете. Наконец, мы нашли более лаконичный вариант. mongodb Класс. Грамматика и монго Это примерно одно и то же. Ясно, естественно.
Адрес проекта https://github.com/mongodb/mongo-php-library
Потому что в проекте участвуют иностранные друзья. Таким образом, нет четкого документа, который можно было бы увидеть. Вот несколько распространенных методов.
Получить экземпляр
$uri = "mongodb://username:[email protected]/database"; $client = new \MongoDB\Client($uri);
Получайте коллекции
$collection = $client->selectCollection('test','test');Получите часть данных
$data = $collection->findOne(['id'=>1]);
Получение нескольких фрагментов данных
$where = ['type'=>1];
$options = array(
'projection'=> array ('id'= > 1,'age'= > 1,'name'= > - 1), /// Specifies which fields 1 returns to indicate that - 1 does not return
'sort'=> array ('id'=> - 1), //Specify sort field
'limit'=> 10, /// Specifies the number of returned items
'skip'=> 0, // specify the starting position
);
$data = $collection->find($where,$options)->toArray();
var_dump($data);Удаление дубликатов
$fileName = 'name'; $where = ['id' => ['$lt' => 100]] $ret = $this->collection->distinct($fileName,$where);
Вставьте фрагмент данных
$data = array(
'id' => 2,
'age' => 20,
'name'=>'Zhang San'
);
$ret = $collection->insertOne($data);
$id=$ret->getInsertedId();Пакетная вставка
$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);
# Return the insertion ID
var_dump($ret->getInsertedIds());Обновите одну статью
$ret = $collection->updateOne(array('id' => 2), array('$set' => array('age' => 56)));Обновите несколько элементов
$ret = $collection->updateMany(array('id' => ['$gt' => 1]), array('$set' => array('age' => 56, 'name' => 'x')));Удалить один пункт
$ret = $collection->deleteOne(array('id' => 2));Удалить несколько записей
$collection->deleteMany(array('id' => array('$in' => array(1, 2))));полимеризация
$ops = [
[
'$match' =>['type'=>['$in'=>[2,4]]]
],
[
'$sort'=> ['list. create_time'=> - 1]//sort order cannot be changed, otherwise it will cause sorting confusion, pay attention to sorting first and then paging.
],
[
'$skip' => 0
],
[
'$limit' => 20000
],
];
$data = $collection->aggregate($ops);
foreach ($data as $document)
{
var_dump($document);
}