Как разработать CRUD-операции для MongoDB на PHP

Как разработать CRUD-операции для MongoDB на PHP

CRUD-операции создания, чтения, обновления и удаления документов, PHP-библиотека MongoDB MongoDB. Как разработать CRUD-операции для MongoDB на PHP?

Реализация спецификации CRUD кросс-контроллера MongoDB, который предоставляет доступ к методам для вставки, поиска, обновления и удаления документов в MongoDB.

Этот документ предоставляет общее введение в вставку, консультации, обновление и удаление документов с использованием PHP-библиотеки MongoDB.

Как разработать CRUD-операции для MongoDB на PHP?

  • предпосылки: Знание PHP и базы данных.
  • Мы собираемся сделать некоторые операции CRUD в сценарии PHP.

Выберите коллекцию

  • Выбор коллекции похож на выбор базы данных:
$conn = new Mongo();
$db = $conn->selectDB('testdb');
$collection = $db->myc;
  • Коллекция может существовать или не существоватьНезависимо от того, что, вы получите коллекцию, это может быть существующая или созданная.

Добавить документ

  • Это почти тривиально, просто определите матрицу и вставьте ее.
$doc = array(
'title' => 'this is title',
'content' => "this is content",
'category' => 'database'
);

$collection->insert($doc);

$result = $collection->find();

foreach($result as $doc)
print_r($doc);
  • Foreach распечатать все документы в коллекции.
Array
(
(_id) => MongoId Object
(
($id) => 5188bead7ab2adec27000000
)

(title) => this is title
(content) => this is content
(category) => database
)
Array
(
(_id) => MongoId Object
(
($id) => 5188beb77ab2ad7805000000
)

(title) => this is title
(content) => this is content
(category) => database
)
  • Как видите, Mongodb использует уникальную идентификацию для идентификации каждого документа.

MongoDB предоставляет нам следующий метод для вставки нескольких документов в коллекцию.db.collection.insertMany ()

Консультационный документ

  • Найти документ по идентификатору:
$id = new MongoId('5188bebf7ab2ad7422000000');
$one = $collection->findone(array('_id' => $id));
print_r($one);
  • Это очень похоже на инструкции по выбору SQL:
SELECT * FROM collection WHERE _id = $id

Tambin puede seleccionar por otras teclas:
$results = $collection->findone(array(
'title' => 'this is title',
));
SELECT * FROM collection WHERE title="this is title"

Как выбрать конкретные столбцы

$results = $collection->findone(array(
'title' => 'this is title',
), array(
'content'
));
echo $results('content');
  • Вторая матрица – это столбцы, которые должны быть возвращены.

Обновить документ

$collection->update(
array( '_id' => new MongoId('5188bebf7ab2ad7422000000')),
array( '$set' => array( 'content' => 'update content' ) )
);

$id = new MongoId('5188bebf7ab2ad7422000000');
$one = $collection->findone(array('_id' => $id));

print_r($one);

Набор $ set сообщает Mongodb, что это обновление, оно не заменяет весь документ.

  • Обновление может не только обновить существующий столбец, но и добавить новые столбцы:
$collection->update(
array( '_id' => new MongoId('5188bebf7ab2ad7422000000')),
array( '$set' =>
array( 'keywords' =>
array( 'name', 'mongo', 'software', 'web')
)
)
);

$id = new MongoId('5188bebf7ab2ad7422000000');
$one = $collection->findone(array('_id' => $id));

print_r($one);
Array
(
(_id) => MongoId Object
(
($id) => 5188bebf7ab2ad7422000000
)

(category) => database
(content) => update content
(keywords) => Array
(
(0) => name
(1) => mongo
(2) => software
(3) => web
)

(title) => this is title
)
  • Это не то, что вы можете легко сделать в реляционной базе данных.
MongoDB nos proporciona los siguientes mtodos para actualizar los documentos de la coleccin.
db.collection.updateOne ()
db.collection.updateMany ()
db.collection.replaceOne ()

Удалить документ

$collection->remove(array('_id'=> new MongoId('5188bebf7ab2ad7422000000')), array("justOne" => true) );

Удалить много документов

MongoDB Collection :: deleteMany () удалите все документы, которые соответствуют критериям фильтра, и верните MongoDB DeleteResult, который можно использовать для доступа к статистике об операции удаления.

MongoDB Collection :: deleteMany () У него есть обязательный параметр: фильтр запроса, который определяет документ, который нужно удалить.

Следующая операция удаляет все документы, в которых значение поля состояния равно «ny»:

test->users;
$collection->drop();

$collection->insertOne(('name' => 'Bob', 'state' => 'ny'));
$collection->insertOne(('name' => 'Alice', 'state' => 'ny'));
$deleteResult = $collection->deleteMany(('state' => 'ny'));

printf("Deleted %d document(s)n", $deleteResult->getDeletedCount());
  • Вывод будет выглядеть так:

Удалено 2 документа