Ví dụ truy vấn php mongodb
Tìm kiếm là cách bạn truy vấn dữ liệu trong MongoDB. Nó tương tự như câu lệnh "chọn" trong ngôn ngữ truy vấn SQL Show
Hãy chuẩn bị cơ sở dữ liệu cho cuộc biểu tình của chúng tôi $conn = new Mongo(); $db = $conn->selectDB('testfind'); $collection = $db->post; $collection->save(array( "title" => "post title", "content" => "post content", "date" => strtotime(date("r")), "author" => "david", "readcount" => 3 )); Chúng tôi tạo cơ sở dữ liệu và bộ sưu tập trong db, sau đó chèn một số tài liệu vào đó Tìm kiếm đơn giản nhất sẽ trả về toàn bộ bộ sưu tập $result = $collection->find(); find trả về một con trỏ. Giống như con trỏ trong RDBMS, tập hợp kết quả sẽ không được gửi lại trong một lần. Điều này là hợp lý, nếu một bộ sưu tập chứa hàng triệu bản ghi, một truy vấn find() duy nhất có thể làm sập máy chủ Php cung cấp trình điều khiển mongodb để kết nối với cơ sở dữ liệu mongoDB. Sau khi cài đặt nó, chúng ta có thể thực hiện các thao tác với cơ sở dữ liệu bằng cách sử dụng lệnh php. Ở đây, chúng tôi đang sử dụng Ubuntu 16. 04 để tạo ví dụ. Ví dụ này bao gồm các bước sau 1) Cài đặt trình điều khiển2) Chỉnh sửa php. tập tin iniNó được lưu trữ trong thư mục máy chủ apache /etc/php/7. 0/apache2/php. ban đầu 3) Cài đặt thư viện mongo-phpSau đây là cách ưa thích để cài đặt thư viện này với Composer 4) Tạo tập lệnh Php// kết nối. php 5) Thực thi tập lệnh PhpThực thi tập lệnh này trên máy chủ localhost. Nó sẽ tạo cơ sở dữ liệu và lưu trữ dữ liệu vào mongodb Trong hướng dẫn này, chúng tôi trình bày cách làm việc với MongoDB trong PHP. Chúng tôi sử dụng trình điều khiển $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install1 mới cho PHP. Có một hướng dẫn PHP ngắn gọn trên ZetCode MongoDB là cơ sở dữ liệu định hướng tài liệu đa nền tảng NoSQL. Đây là một trong những cơ sở dữ liệu phổ biến nhất hiện có. MongoDB được phát triển bởi MongoDB Inc. và được xuất bản dưới dạng phần mềm mã nguồn mở và miễn phí Một bản ghi trong MongoDB là một tài liệu, là một cấu trúc dữ liệu bao gồm các cặp trường và giá trị. Các tài liệu MongoDB tương tự như các đối tượng JSON. Giá trị của các trường có thể bao gồm các tài liệu, mảng và mảng tài liệu khác. MongoDB lưu trữ tài liệu trong bộ sưu tập. Bộ sưu tập tương tự như bảng trong cơ sở dữ liệu quan hệ và tài liệu tương tự như hàng Lệnh sau có thể được sử dụng để cài đặt MongoDB trên Linux dựa trên Debian $ sudo apt-get install mongodb Lệnh cài đặt các gói cần thiết đi kèm với MongoDB $ sudo service mongodb status mongodb start/running, process 975 Với lệnh $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install2, chúng tôi kiểm tra trạng thái của máy chủ $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install1 $ sudo service mongodb start mongodb start/running, process 6448 Máy chủ $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install1 được khởi động bằng lệnh $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install5 Tạo cơ sở dữ liệuCông cụ $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install6 là giao diện shell JavaScript tương tác với MongoDB, cung cấp giao diện cho quản trị viên hệ thống cũng như cách để nhà phát triển kiểm tra các truy vấn và hoạt động trực tiếp với cơ sở dữ liệu $ mongo testdb MongoDB shell version: 2.4.9 connecting to: testdb > db testdb > db.cars.insert({name: "Audi", price: 52642}) > db.cars.insert({name: "Mercedes", price: 57127}) > db.cars.insert({name: "Skoda", price: 9000}) > db.cars.insert({name: "Volvo", price: 29000}) > db.cars.insert({name: "Bentley", price: 350000}) > db.cars.insert({name: "Citroen", price: 21000}) > db.cars.insert({name: "Hummer", price: 41400}) > db.cars.insert({name: "Volkswagen", price: 21600}) Chúng tôi tạo cơ sở dữ liệu $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install7 và chèn tám tài liệu vào bộ sưu tập $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install8 Có hai trình điều khiển có sẵn. trình điều khiển $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install6 kế thừa và trình điều khiển $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install1 mới. Trong hướng dẫn này, chúng tôi làm việc với trình điều khiển $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install1 mới Tiếp theo, chúng tôi trình bày cách cài đặt trình điều khiển PHP MongoDB theo cách thủ công $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install Chúng tôi tải xuống các nguồn và cài đặt trình điều khiển từ chúng extension=mongodb.so Chúng tôi thêm phần mở rộng extension=mongodb.so2 vào tệp extension=mongodb.so3 Thống kê cơ sở dữ liệuVí dụ đầu tiên kết nối với cơ sở dữ liệu $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install7 và lấy số liệu thống kê của nó extension=mongodb.so5 chịu trách nhiệm duy trì kết nối với MongoDB. extension=mongodb.so6 đại diện cho một lệnh cơ sở dữ liệu. Khi thành công, lệnh trả về extension=mongodb.so7 1]); $res = $mng->executeCommand("testdb", $stats); $stats = current($res->toArray()); print_r($stats); } catch (MongoDB\Driver\Exception\Exception $e) { $filename = basename(__FILE__); echo "The $filename script has experienced an error.\n"; echo "It failed with the following exception:\n"; echo "Exception:", $e->getMessage(), "\n"; echo "In file:", $e->getFile(), "\n"; echo "On line:", $e->getLine(), "\n"; } ?> Ví dụ kết nối với cơ sở dữ liệu $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install7 và thực hiện lệnh extension=mongodb.so9. Nó cho thấy một số thống kê cơ sở dữ liệu $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017"); Với lớp extension=mongodb.so5, chúng tôi kết nối với cơ sở dữ liệu $ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule sync && git submodule update --init $ phpize $ ./configure $ make $ sudo make install7. 27017 là cổng mặc định mà máy chủ MongoDB lắng nghe $res = $mng->executeCommand("testdb", $stats); extension=mongodb.so6 được sử dụng để thực thi lệnh extension=mongodb.so9 $stats = current($res->toArray()); Phương thức 1]); $res = $mng->executeCommand("testdb", $stats); $stats = current($res->toArray()); print_r($stats); } catch (MongoDB\Driver\Exception\Exception $e) { $filename = basename(__FILE__); echo "The $filename script has experienced an error.\n"; echo "It failed with the following exception:\n"; echo "Exception:", $e->getMessage(), "\n"; echo "In file:", $e->getFile(), "\n"; echo "On line:", $e->getLine(), "\n"; } ?>4 trả về một mảng chứa tất cả các kết quả cho con trỏ này và hàm 1]); $res = $mng->executeCommand("testdb", $stats); $stats = current($res->toArray()); print_r($stats); } catch (MongoDB\Driver\Exception\Exception $e) { $filename = basename(__FILE__); echo "The $filename script has experienced an error.\n"; echo "It failed with the following exception:\n"; echo "Exception:", $e->getMessage(), "\n"; echo "In file:", $e->getFile(), "\n"; echo "On line:", $e->getLine(), "\n"; } ?>5 trả về phần tử hiện tại của mảng. Trong trường hợp của chúng ta, mảng có một phần tử $ sudo service mongodb status mongodb start/running, process 9750 Hàm 1]); $res = $mng->executeCommand("testdb", $stats); $stats = current($res->toArray()); print_r($stats); } catch (MongoDB\Driver\Exception\Exception $e) { $filename = basename(__FILE__); echo "The $filename script has experienced an error.\n"; echo "It failed with the following exception:\n"; echo "Exception:", $e->getMessage(), "\n"; echo "In file:", $e->getFile(), "\n"; echo "On line:", $e->getLine(), "\n"; } ?>6 in một biểu diễn mà con người có thể đọc được của biến 1]); $res = $mng->executeCommand("testdb", $stats); $stats = current($res->toArray()); print_r($stats); } catch (MongoDB\Driver\Exception\Exception $e) { $filename = basename(__FILE__); echo "The $filename script has experienced an error.\n"; echo "It failed with the following exception:\n"; echo "Exception:", $e->getMessage(), "\n"; echo "In file:", $e->getFile(), "\n"; echo "On line:", $e->getLine(), "\n"; } ?>7 $ sudo service mongodb status mongodb start/running, process 9751 Đây là kết quả của chương trình 1]); $res = $mng->executeCommand("testdb", $stats); $stats = current($res->toArray()); print_r($stats); } catch (MongoDB\Driver\Exception\Exception $e) { $filename = basename(__FILE__); echo "The $filename script has experienced an error.\n"; echo "It failed with the following exception:\n"; echo "Exception:", $e->getMessage(), "\n"; echo "In file:", $e->getFile(), "\n"; echo "On line:", $e->getLine(), "\n"; } ?>8 Lệnh 1]); $res = $mng->executeCommand("testdb", $stats); $stats = current($res->toArray()); print_r($stats); } catch (MongoDB\Driver\Exception\Exception $e) { $filename = basename(__FILE__); echo "The $filename script has experienced an error.\n"; echo "It failed with the following exception:\n"; echo "Exception:", $e->getMessage(), "\n"; echo "In file:", $e->getFile(), "\n"; echo "On line:", $e->getLine(), "\n"; } ?>9 cung cấp danh sách tất cả các cơ sở dữ liệu hiện có $ sudo service mongodb status mongodb start/running, process 9752 Ví dụ in cơ sở dữ liệu có sẵn trong MongoDB $ sudo service mongodb status mongodb start/running, process 9753 Chúng tôi thực hiện lệnh 1]); $res = $mng->executeCommand("testdb", $stats); $stats = current($res->toArray()); print_r($stats); } catch (MongoDB\Driver\Exception\Exception $e) { $filename = basename(__FILE__); echo "The $filename script has experienced an error.\n"; echo "It failed with the following exception:\n"; echo "Exception:", $e->getMessage(), "\n"; echo "In file:", $e->getFile(), "\n"; echo "On line:", $e->getLine(), "\n"; } ?>9. Lệnh được thực thi trên cơ sở dữ liệu $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");1 $ sudo service mongodb status mongodb start/running, process 9754 Lệnh trả về một tài liệu kết quả duy nhất, chứa thông tin cho tất cả các cơ sở dữ liệu trong trường mảng $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");2 $ sudo service mongodb status mongodb start/running, process 9755 Chúng tôi đi qua mảng cơ sở dữ liệu và in tên của các cơ sở dữ liệu có sẵn $ sudo service mongodb status mongodb start/running, process 9756 Trên máy cục bộ của chúng tôi, chúng tôi có ba cơ sở dữ liệu này Đọc dữ liệu$mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");3 là một đối tượng giá trị đại diện cho một truy vấn cơ sở dữ liệu $ sudo service mongodb status mongodb start/running, process 9757 Ví dụ đọc tất cả dữ liệu từ bộ sưu tập $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");4 $ sudo service mongodb status mongodb start/running, process 9758 Một đối tượng $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");3 được tạo. Nếu chúng ta truyền vào một mảng trống, nó sẽ đọc tất cả dữ liệu $ sudo service mongodb status mongodb start/running, process 9759 $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");6 thực hiện truy vấn. Tham số đầu tiên là tên bộ sưu tập và tham số thứ hai là truy vấn $ sudo service mongodb start mongodb start/running, process 64480 Chúng tôi lặp lại tất cả các tài liệu phù hợp $ sudo service mongodb start mongodb start/running, process 64481 Đây là đầu ra của tập lệnh $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");7 $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");3 chứa tham số bộ lọc được sử dụng để lọc dữ liệu $ sudo service mongodb start mongodb start/running, process 64482 Ví dụ tìm kiếm giá xe Volkswagen $ sudo service mongodb start mongodb start/running, process 64483 Chúng tôi cung cấp tham số bộ lọc cho $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");3 $ sudo service mongodb start mongodb start/running, process 64484 Chúng tôi in tên và giá của chiếc xe đã chọn. Chúng tôi đảm bảo rằng biến được trả về không trống bằng hàm $res = $mng->executeCommand("testdb", $stats);0 $ sudo service mongodb start mongodb start/running, process 64485 Đây là đầu ra của tập lệnh $res = $mng->executeCommand("testdb", $stats);1 dự đoánPhép chiếu có thể được sử dụng để chỉ định trường nào sẽ được trả về $ sudo service mongodb start mongodb start/running, process 64486 Trong ví dụ này, chúng tôi ẩn trường đầu tiên—các $res = $mng->executeCommand("testdb", $stats);2 $ sudo service mongodb start mongodb start/running, process 64487 Các phép chiếu được xác định trong một mảng $res = $mng->executeCommand("testdb", $stats);3. Ở đây chúng tôi ẩn trường $res = $mng->executeCommand("testdb", $stats);2 $ sudo service mongodb start mongodb start/running, process 64488 Các phép chiếu được thông qua trong đối số thứ hai của $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");3 $ sudo service mongodb start mongodb start/running, process 64489 Đây là đầu ra một phần của tập lệnh $res = $mng->executeCommand("testdb", $stats);6. Chỉ các trường tên và giá được trả lại Tùy chọn truy vấn $res = $mng->executeCommand("testdb", $stats);7 chỉ định số lượng tài liệu sẽ được trả lại và tùy chọn $res = $mng->executeCommand("testdb", $stats);8 thứ tự sắp xếp $ mongo testdb MongoDB shell version: 2.4.9 connecting to: testdb > db testdb > db.cars.insert({name: "Audi", price: 52642}) > db.cars.insert({name: "Mercedes", price: 57127}) > db.cars.insert({name: "Skoda", price: 9000}) > db.cars.insert({name: "Volvo", price: 29000}) > db.cars.insert({name: "Bentley", price: 350000}) > db.cars.insert({name: "Citroen", price: 21000}) > db.cars.insert({name: "Hummer", price: 41400}) > db.cars.insert({name: "Volkswagen", price: 21600})0 Ví dụ đọc tất cả dữ liệu từ bộ sưu tập $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");4, giới hạn đầu ra ở năm ô tô và sắp xếp theo tên ô tô theo thứ tự tăng dần $ mongo testdb MongoDB shell version: 2.4.9 connecting to: testdb > db testdb > db.cars.insert({name: "Audi", price: 52642}) > db.cars.insert({name: "Mercedes", price: 57127}) > db.cars.insert({name: "Skoda", price: 9000}) > db.cars.insert({name: "Volvo", price: 29000}) > db.cars.insert({name: "Bentley", price: 350000}) > db.cars.insert({name: "Citroen", price: 21000}) > db.cars.insert({name: "Hummer", price: 41400}) > db.cars.insert({name: "Volkswagen", price: 21600})1 Chúng tôi chỉ định các tùy chọn $res = $mng->executeCommand("testdb", $stats);8 và $res = $mng->executeCommand("testdb", $stats);7 trong tham số thứ hai của truy vấn $ mongo testdb MongoDB shell version: 2.4.9 connecting to: testdb > db testdb > db.cars.insert({name: "Audi", price: 52642}) > db.cars.insert({name: "Mercedes", price: 57127}) > db.cars.insert({name: "Skoda", price: 9000}) > db.cars.insert({name: "Volvo", price: 29000}) > db.cars.insert({name: "Bentley", price: 350000}) > db.cars.insert({name: "Citroen", price: 21000}) > db.cars.insert({name: "Hummer", price: 41400}) > db.cars.insert({name: "Volkswagen", price: 21600})2 Đây là đầu ra của tập lệnh $stats = current($res->toArray());2 Phương thức $stats = current($res->toArray());3 thực thi một hoặc nhiều thao tác ghi, bao gồm chèn, cập nhật và xóa $ mongo testdb MongoDB shell version: 2.4.9 connecting to: testdb > db testdb > db.cars.insert({name: "Audi", price: 52642}) > db.cars.insert({name: "Mercedes", price: 57127}) > db.cars.insert({name: "Skoda", price: 9000}) > db.cars.insert({name: "Volvo", price: 29000}) > db.cars.insert({name: "Bentley", price: 350000}) > db.cars.insert({name: "Citroen", price: 21000}) > db.cars.insert({name: "Hummer", price: 41400}) > db.cars.insert({name: "Volkswagen", price: 21600})3 Tập lệnh chèn một ô tô mới, cập nhật một ô tô và xóa một ô tô $ mongo testdb MongoDB shell version: 2.4.9 connecting to: testdb > db testdb > db.cars.insert({name: "Audi", price: 52642}) > db.cars.insert({name: "Mercedes", price: 57127}) > db.cars.insert({name: "Skoda", price: 9000}) > db.cars.insert({name: "Volvo", price: 29000}) > db.cars.insert({name: "Bentley", price: 350000}) > db.cars.insert({name: "Citroen", price: 21000}) > db.cars.insert({name: "Hummer", price: 41400}) > db.cars.insert({name: "Volkswagen", price: 21600})4 $stats = current($res->toArray());4 thu thập một hoặc nhiều thao tác ghi sẽ được gửi đến máy chủ $ mongo testdb MongoDB shell version: 2.4.9 connecting to: testdb > db testdb > db.cars.insert({name: "Audi", price: 52642}) > db.cars.insert({name: "Mercedes", price: 57127}) > db.cars.insert({name: "Skoda", price: 9000}) > db.cars.insert({name: "Volvo", price: 29000}) > db.cars.insert({name: "Bentley", price: 350000}) > db.cars.insert({name: "Citroen", price: 21000}) > db.cars.insert({name: "Hummer", price: 41400}) > db.cars.insert({name: "Volkswagen", price: 21600})5 Đây là một tài liệu mới được chèn vào. $stats = current($res->toArray());5 tạo một ObjectId mới. Đó là một giá trị được sử dụng để xác định duy nhất các tài liệu trong một bộ sưu tập $ mongo testdb MongoDB shell version: 2.4.9 connecting to: testdb > db testdb > db.cars.insert({name: "Audi", price: 52642}) > db.cars.insert({name: "Mercedes", price: 57127}) > db.cars.insert({name: "Skoda", price: 9000}) > db.cars.insert({name: "Volvo", price: 29000}) > db.cars.insert({name: "Bentley", price: 350000}) > db.cars.insert({name: "Citroen", price: 21000}) > db.cars.insert({name: "Hummer", price: 41400}) > db.cars.insert({name: "Volkswagen", price: 21600})6 Thao tác chèn được tạo bằng phương thức $stats = current($res->toArray());6 $ mongo testdb MongoDB shell version: 2.4.9 connecting to: testdb > db testdb > db.cars.insert({name: "Audi", price: 52642}) > db.cars.insert({name: "Mercedes", price: 57127}) > db.cars.insert({name: "Skoda", price: 9000}) > db.cars.insert({name: "Volvo", price: 29000}) > db.cars.insert({name: "Bentley", price: 350000}) > db.cars.insert({name: "Citroen", price: 21000}) > db.cars.insert({name: "Hummer", price: 41400}) > db.cars.insert({name: "Volkswagen", price: 21600})7 Thao tác cập nhật được tạo bằng phương thức $stats = current($res->toArray());7. Toán tử $stats = current($res->toArray());8 thay thế giá trị của một trường bằng giá trị đã chỉ định Làm cách nào để viết truy vấn MongoDB trong PHP?php // kết nối với mongodb $m = new MongoClient();
Chúng tôi có thể kết nối MongoDB bằng PHP không?Php cung cấp trình điều khiển mongodb để kết nối với cơ sở dữ liệu mongoDB . Sau khi cài đặt nó, chúng ta có thể thực hiện các thao tác với cơ sở dữ liệu bằng cách sử dụng lệnh php.
Làm cách nào để chèn dữ liệu vào MongoDB bằng PHP?Sử dụng PHP để Chèn Tài liệu MongoDB
. Ở phần sau của tập lệnh, chúng ta thấy $bulk->insert($doc); . .
Làm cách nào để cập nhật trong MongoDB bằng PHP?Cách cập nhật nhiều tài liệu MongoDB bằng PHP . Tập lệnh MongoDBDeriverManager sẽ cập nhật các tài liệu phù hợp với tiêu chí đã chỉ định khi đa tham số được đặt thành true Phương thức updateMany() của Thư viện PHP sẽ cập nhật tất cả các tài liệu phù hợp với tiêu chí đã chỉ định |