PHP
Использование MongoDB
Поиск…
Подключиться к MongoDB
Создайте соединение MongoDB, которое позже вы можете запросить:
$manager = new \MongoDB\Driver\Manager('mongodb://localhost:27017');
В следующем примере вы узнаете, как запрашивать объект соединения.
Это расширение автоматически закрывает соединение, нет необходимости закрывать его вручную.
Получить один документ - findOne ()
Пример для поиска только одного пользователя с определенным идентификатором, вы должны сделать:
$options = ['limit' => 1];
$filter = ['_id' => new \MongoDB\BSON\ObjectID('578ff7c3648c940e008b457a')];
$query = new \MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('database_name.collection_name', $query);
$cursorArray = $cursor->toArray();
if(isset($cursorArray[0])) {
var_dump($cursorArray[0]);
}
Получить несколько документов - найти ()
Пример поиска нескольких пользователей с именем «Mike»:
$filter = ['name' => 'Mike'];
$query = new \MongoDB\Driver\Query($filter);
$cursor = $manager->executeQuery('database_name.collection_name', $query);
foreach ($cursor as $doc) {
var_dump($doc);
}
Вставить документ
Пример добавления документа:
$document = [
'name' => 'John',
'active' => true,
'info' => ['genre' => 'male', 'age' => 30]
];
$bulk = new \MongoDB\Driver\BulkWrite;
$_id1 = $bulk->insert($document);
$result = $manager->executeBulkWrite('database_name.collection_name', $bulk);
Обновить документ
Пример обновления всех документов, где имя равно «Джон»:
$filter = ['name' => 'John'];
$document = ['name' => 'Mike'];
$bulk = new \MongoDB\Driver\BulkWrite;
$bulk->update(
$filter,
$document,
['multi' => true]
);
$result = $manager->executeBulkWrite('database_name.collection_name', $bulk);
Удаление документа
Пример удаления всех документов, где имя равно «Петру»:
$bulk = new \MongoDB\Driver\BulkWrite;
$filter = ['name' => 'Peter'];
$bulk->delete($filter);
$result = $manager->executeBulkWrite('database_name.collection_name', $bulk);
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow