PHP code example of alexanderthegreat96 / mongo-api-client
1. Go to this page and download the library: Download alexanderthegreat96/mongo-api-client library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
alexanderthegreat96 / mongo-api-client example snippets
use Alexanderthegreat96\MongoApiClient\MongoApiClient;
$client = new MongoApiClient(
serverUrl: env('MONGO_API_URL', 'api.example.com'),
serverPort: env('MONGO_API_PORT', 80),
apiKey: env('MONGO_API_KEY', 'your-api-key'),
scheme: env('MONGO_API_SCHEME', 'https'),
autoConvertVals: true,
timeoutSeconds: env('MONGO_API_TIMEOUT', 5.0)
);
use Alexanderthegreat96\MongoApiClient\MongoApiClient;
$client = new MongoApiClient(
'api.example.com',
80,
'your-api-key',
'https',
true,
5.0
);
$response = $client
->fromDb('my_database')
->fromCollection('users')
->where('age', '>=', 18, autoConvert: true)
->sortBy('name', MongoApiClient::ASC)
->page(1)
->perPage(20)
->all();
if ($response->isOk()) {
$data = $response->getData();
echo 'Found ' . count($data) . ' users:' . PHP_EOL;
foreach ($data as $doc) {
print_r($doc->getResult());
}
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$response = $client
->fromDb('my_database')
->fromCollection('users')
->where('name', '=', 'John Doe', autoConvert: false)
->first();
if ($response->isOk()) {
$data = $response->getData();
print_r($data->getResult() ?: 'No document found');
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$response = $client
->fromDb('my_database')
->fromCollection('users')
->findById('507f1f77bcf86cd799439011');
if ($response->isOk()) {
$data = $response->getData();
print_r($data->getResult() ?: 'No document found');
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$response = $client
->fromDb('my_database')
->fromCollection('users')
->where('age', '>=', 18, autoConvert: true)
->orWhere('status', '=', 'active', autoConvert: false)
->perPage(10)
->all();
if ($response->isOk()) {
$data = $response->getData();
echo 'Found ' . count($data) . ' users:' . PHP_EOL;
foreach ($data as $doc) {
print_r($doc->getResult());
}
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$response = $client
->fromDb('my_database')
->fromCollection('users')
->where('age', '>=', 18, autoConvert: true)
->groupBy('city')
->innerPage(1)
->innerPerPage(5)
->all();
if ($response->isOk()) {
$data = $response->getData();
if ($data->hasGrouped()) {
foreach ($data as $group) {
$innerPagination = $group->getInnerPagination();
$records = $group->getRecords();
$totalRecords = $group->getTotalRecords();
$recordId = $group->getRecordId();
echo 'Group ID: ' . ($recordId ?? 'unknown') . PHP_EOL;
echo 'Group: ' . ($group->getData()['city'] ?? 'unknown') . PHP_EOL;
echo 'Total Records: ' . ($totalRecords[0] ?? 0) . PHP_EOL;
echo 'Page ' . $innerPagination->getCurrentPage() . '/' . $innerPagination->getTotalPages() . PHP_EOL;
foreach ($records as $record) {
echo ' - ' . print_r($record, true) . PHP_EOL;
}
}
} else {
echo 'No grouped data found' . PHP_EOL;
}
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$response = $client
->fromDb('my_database')
->fromCollection('users')
->where('age', '>=', 18, autoConvert: true)
->count();
if ($response->isOk()) {
echo 'Total users: ' . $response->getCount() . PHP_EOL;
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$response = $client
->fromDb('my_database')
->fromCollection('users')
->page(2)
->perPage(15)
->all();
if ($response->isOk()) {
$pagination = $response->getPagination();
echo 'Page ' . $pagination->getCurrentPage() . '/' . $pagination->getTotalPages() . PHP_EOL;
echo 'Next Page: ' . $pagination->getNextPage() . PHP_EOL;
echo 'Previous Page: ' . $pagination->getPrevPage() . PHP_EOL;
echo 'Items per page: ' . $pagination->getPerPage() . PHP_EOL;
$data = $response->getData();
foreach ($data as $doc) {
print_r($doc->getResult());
}
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
// Custom query
$customQuery = ['stats.timePlayed' => ['$gte' => 10000]];
$response = $client
->fromDb('my_database')
->fromCollection('users')
->executeCustomQuery($customQuery);
if ($response->isOk()) {
$data = $response->getData();
foreach ($data as $doc) {
print_r($doc->getResult());
}
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
// Aggregation query
$aggregateQuery = [
['$match' => ['stats.timePlayed' => ['$gte' => 10000]]],
['$group' => [
'_id' => '$city',
'totalTime' => ['$sum' => '$stats.timePlayed'],
'avgTime' => ['$avg' => '$stats.timePlayed']
]],
['$sort' => ['totalTime' => -1]]
];
$response = $client
->fromDb('my_database')
->fromCollection('users')
->executeCustomQuery($aggregateQuery, aggregate: true);
if ($response->isOk()) {
$data = $response->getData();
foreach ($data as $doc) {
print_r($doc->getResult());
}
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$payload = ['name' => 'John Doe', 'age' => 30];
$response = $client->fromDb('my_database')->fromCollection('users')->insert($payload);
if ($response->isOk()) {
echo 'Inserted document. Message: ' . $response->getMessage() . PHP_EOL;
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$payload = ['name' => 'John Doe', 'age' => 30];
$response = $client
->fromDb('my_database')
->fromCollection('users')
->where('name', '=', 'John Doe', autoConvert: false)
->insertIf($payload);
if ($response->isOk()) {
echo 'Inserted document. Message: ' . $response->getMessage() . PHP_EOL;
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$payload = ['age' => 31];
$response = $client
->fromDb('my_database')
->fromCollection('users')
->where('name', '=', 'John Doe', autoConvert: false)
->update($payload);
if ($response->isOk()) {
echo 'Updated documents. Message: ' . $response->getMessage() . PHP_EOL;
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$payload = ['age' => 31];
$response = $client
->fromDb('my_database')
->fromCollection('users')
->updateById('507f1f77bcf86cd799439011', $payload);
if ($response->isOk()) {
echo 'Updated document. Message: ' . $response->getMessage() . PHP_EOL;
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$response = $client
->fromDb('my_database')
->fromCollection('users')
->where('age', '<', 18, autoConvert: true)
->delete();
if ($response->isOk()) {
echo 'Deleted documents. Message: ' . $response->getMessage() . PHP_EOL;
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$response = $client
->fromDb('my_database')
->fromCollection('users')
->deleteById('507f1f77bcf86cd799439011');
if ($response->isOk()) {
echo 'Deleted document. Message: ' . $response->getMessage() . PHP_EOL;
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$dbResponse = $client->listDatabases();
if ($dbResponse->isOk()) {
print_r($dbResponse->getDatabases());
} else {
echo 'Error: ' . $dbResponse->getError() . PHP_EOL;
}
$collectionResponse = $client->listTablesInDb('my_database');
if ($collectionResponse->isOk()) {
print_r($collectionResponse->getTables());
} else {
echo 'Error: ' . $collectionResponse->getError() . PHP_EOL;
}
$response = $client->dropDatabase('my_database');
if ($response->isOk()) {
echo 'Dropped database. Message: ' . $response->getMessage() . PHP_EOL;
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$response = $client->dropCollection('my_database', 'users');
if ($response->isOk()) {
echo 'Dropped collection. Message: ' . $response->getMessage() . PHP_EOL;
} else {
echo 'Error: ' . $response->getError() . PHP_EOL;
}
$response = $client->fromDb('my_database')->fromCollection('users')->all();
if ($response->isNotOk()) {
echo 'Request failed with code ' . $response->getCode() . ': ' . $response->getError() . PHP_EOL;
if ($response->getCode() === 401) {
echo 'Please check your API key.' . PHP_EOL;
}
}