PHP.mk документација

Користење на PHP библиотеката за MongoDB (PHPLIB)

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

mongodb.tutorial.library.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека mongodb.tutorial.library.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Користење на PHP библиотеката за MongoDB (PHPLIB)

Референца за `mongodb.tutorial.library.php` со подобрена типографија и навигација.

mongodb.tutorial.library.php

Користење на PHP библиотеката за MongoDB (PHPLIB)

After the initial extension set-up, we will continue explaining how to get started with the corresponding userland library to write our first project.

По првичното поставување на екстензијата, ќе продолжиме со објаснување како да започнете со соодветната корисничка библиотека за да го напишете вашиот прв проект.

Инсталирање на PHP библиотеката со Composer

Последното нешто што сè уште треба да го инсталираме за да започнеме со самата апликација е PHP библиотеката. » КомпозерБиблиотеката треба да се инсталира со

, менаџер на пакети за PHP. Инструкции за инсталирање на Composer на различни платформи може да се најдат на неговата веб-страница.

$ composer require mongodb/mongodb

Инсталирајте ја библиотеката со извршување:

./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing mongodb/mongodb (1.0.0)
    Downloading: 100%

Writing lock file
Generating autoload files

Тоа ќе прикаже нешто слично на: composer.json, composer.lock, и а vendor Composer ќе создаде неколку датотеки:

директориум што ќе ја содржи библиотеката и сите други зависности што вашиот проект може да ги бара.

Користење на PHP библиотеката

<?php
// This path should point to Composer's autoloader
require 'vendor/autoload.php';

Покрај управувањето со вашите зависности, Composer исто така ќе ви обезбеди автолоадер (за класи на тие зависности). Осигурете се дека е вклучен на почетокот на вашата скрипта или во кодот за подигнување на вашата апликација: Со ова завршено, сега можете да ја користите секоја од функционалностите како што е опишано во.

» документацијата на библиотеката Ако сте користеле MongoDB драјвери на други јазици, API-то на библиотеката треба да ви изгледа познато. Содржи » Client класа за поврзување со MongoDB, » Database класа за операции на ниво на база на податоци (на пр. команди, управување со колекции), и » Collection » CRUD методи, управување со индекс).

Како пример, вака се вметнува документ во beers колекцијата на demo базата на податоци:

<?php
require 'vendor/autoload.php'; // include Composer's autoloader

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

echo
"Inserted with Object ID '{$result->getInsertedId()}'";
?>

Бидејќи вметнатиот документ не содржеше _id поле, екстензијата ќе генерира MongoDB\BSON\ObjectId за серверот да го користи како _id. Оваа вредност е исто така достапна за повикувачот преку објектот за резултат вратен од insertOne method.

По вметнувањето, можете да ги пребарувате податоците што штотуку ги вметнавте. За тоа, ја користите find методот, кој враќа итеративен курсор:

<?php
require 'vendor/autoload.php'; // include Composer's autoloader

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

foreach (
$result as $entry) {
echo
$entry['_id'], ': ', $entry['name'], "\n";
}
?>

Иако можеби не е очигледно во примерите, BSON документите и низите се десериализираат како специјални класи во библиотеката по дифолт. Овие класи го прошируваат ArrayObject за употребливост и го имплементираат екстензијата MongoDB\BSON\Serializable and MongoDB\BSON\Unserializable интерфејси за да се осигура дека вредностите ја задржуваат својата типови кога се серијализираат назад во BSON. Ова избегнува посебен случај во старото mongo екстензија каде низите може да се претворат во документи, и обратно. Погледнете го Зачувување податоци спецификацијата за повеќе информации за тоа како вредностите се конвертираат помеѓу PHP и BSON.

Белешки од корисници Управување со PDO конекции

surajtiwari020 at gmail dot com
пред 8 години
Well most of the tutorials didn't explained well, So i hope this might help someone 
Note: this is a part of my laravel project  

//getting data from a collection
<?php

use MongoDB\Client as Mongo;

$user = "admin";
$pwd = 'password';

$mongo = new Mongo("mongodb://${user}:${pwd}@127.0.0.1:27017");
$collection = $mongo->db_name->collection;
$result = $collection->find()->toArray();

print_r($result);

?>
salos_12 at hotmail dot com
пред 6 години
When your database name contains a "-" (e.g. database-name) you need to use a string instead.

<?php

$client = new MongoDB\Client("mongodb://ip_address:port");
$collection = $client->{'database-name'}->collection;

?>
crystale dot darck at gmail dot com
пред 8 години
To test your connection string, you can do something like this:

<?php
$mongo = new MongoDB\Client('mongodb://my_server_does_not_exist_here:27017');
try 
{
    $dbs = $mongo->listDatabases();
}
catch (MongoDB\Driver\Exception\ConnectionTimeoutException $e)
{
    // PHP cannot find a MongoDB server using the MongoDB connection string specified
    // do something here
}
?>
wpg
пред 6 години
If you have a number of JSON documents with nested elements such as 'responseId' below and you want to know how many documents have a responseId:
{"result":{"responseId":"xyz"}}
{"result":NULL}
{"result":{"responseId":"abc"}}

I was not having luck with the following format
<?php 
// trying to get the count of documents where responseId is not equal to NULL (did not work for me)
$intCount = $collection->count(['result' => ['responseId' => ['$ne' => NULL]]]);
?>

Instead I needed to use a period between the JSON elements:
<?php
// get the count of documents where responseId is not equal to NULL
$intCount = $collection->count(['result.responseId' => ['$ne' => NULL]]);
?>
Dc Shiman
пред 10 години
Do a text search on the collection with projection

$search['$text'] = ['$search' => "foo"];
$options["projection"] = ['score' => ['$meta' => "textScore"]];
$options["sort"] = ["score" => ['$meta' => "textScore"]];

$cursor = $collection->find($search, $options);
Башер
пред 9 години
Pecl MongoDB at time of writing can be installed (see phpinfo()) but composer will complain that it's not present.

$  composer require "mongodb/mongodb=^1.0.0"
...
Your requirements could not be resolved to an installable set of packages.

If you see this try 

$ composer require "mongodb/mongodb=^1.0.0" --ignore-platform-reqs
drankinatty на NOSPAMgmail точка ком
пред 1 година
One question that was unanswered was how to handle insertion of a full JSON document provided as an argument (or in a string variable). The mongodb extension can handle this by simply using json_decode() to convert the JSON document to an object that can then be easily inserted, e.g. (with full document provided as the 2nd command-line argument)

<?php
/* include libmongo API */
require "vendor/autoload.php";

/* include connection string, db and collection values */
require __DIR__ . '/site/db-mongo-inc.php';

/* use MongoDBClient; */
use MongoDB\Client;

/* connection string */
$uri = "mongodb://$user:$pass@localhost";

/* attempt connection to database with $uri */
$client = new MongoDB\Client("$uri");
if (!isset($client)) {
  echo 'error: connection failed';
}

/* define collection of documents */
$collection = $client->$db->$collection;

/* insert JSON document from string variable (here $argv[2]) */
if ($argc > 2) {
  $jsobj = json_decode ($argv[2]);
  if ($jsobj) {
    $iresult = $collection->insertOne ( $jsobj );
    if (!$iresult) {
      printf ("error: insert of object failed.\n");
    }
  }
}
?>

The extension's block insert feature recursively resolves all field and data values contained in the object and inserts the entire document in the collection. It is helpful to remove the "_id:" field and have that auto-generated for you to avoid issues.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.