MINI Sh3ll
<?php
class mongo_database {
public $connection;
public $client;
public function __construct(){
$this->client = new MongoDB\Client('mongodb://'.DB_HOST.'/');
$this->connection = $this->client->selectDatabase(DB_NAME, []);
return $this->connection;
}
public function saveOneRecord($collection_name, $document){
if($collection_name == '' || $document == '') return false;
$document = (array) $document;
$collection = $this->connection->{$collection_name};
$result = $collection->insertOne($document);
$insert_id = (string) $result->getInsertedId();
return $insert_id;
}
public function getOneRecord($collection_name, $filter = [], $options = []){
if($collection_name == '' || $filter == '') return false;
$collection = $this->connection->{$collection_name};
$result = $collection->findOne($filter, $options);
if($result){
return $result;
}
else
return false;
}
public function getRecords($collection_name, $filter = [], $options = [])
{
if($collection_name == '') return false;
$collection = $this->connection->{$collection_name};
$cursor = $collection->find($filter, $options);
$result = [];
foreach ($cursor as $entry) {
$entry->_id = (string) $entry->_id;
$result[] = (array)$entry;
}
if($result)
return $result;
else
return false;
}
public function getDistinctRecords($collection_name, $filter){
if($collection_name == '' || $filter == '') return false;
$collection = $this->connection->{$collection_name};
$result = $collection->distinct($filter);
if($result)
return $result;
else
return false;
}
public function updateOneRecord($collection_name, $where, $set_values)
{
$set_values = (array)$set_values;
$collection = $this->connection->{$collection_name};
$updateResult = $collection->updateOne(
$where,
['$set' => $set_values]
);
//print '['.$updateResult->getModifiedCount().']['.$updateResult->getModifiedCount()> 0 ? 'X' : 'Y'.']';
//$updateResult = (array)$updateResult;
//print_r($updateResult); die;
if($updateResult->getModifiedCount() > 0)
return true;
else
return false;
}
public function getAggregateRecords($collection_name, $pipeline){
if($collection_name == '' ) return false;
$collection = $this->connection->{$collection_name};
$result = $collection->aggregate($pipeline)->toArray();
if($result)
return $result;
else
return false;
}
public function deleteRecords($collection_name, $filter){
if($collection_name == '') return false;
$collection = $this->connection->{$collection_name};
$result = $collection->deleteMany($filter);
if($result)
return $result;
else
return false;
}
public function updateRecord($collection_name, $where, $set_values)
{
$set_values = (array)$set_values;
$collection = $this->connection->{$collection_name};
$result = $collection->updateOne(
$where,
['$set' => $set_values]
);
$data=$collection->findOne();
if($result)
return $data;
else
return false;
}
public function getRecordsCount($collection_name, $filter='', $options=''){
if($collection_name == '') return false;
$collection = $this->connection->{$collection_name};
if($filter!='' && $options!=''){
$cursor = $collection->count($filter, $options);
}
else if($filter!=''){
$cursor = $collection->count($filter);
}
else{
$cursor = $collection->count();
}
return $cursor;
}
}
?>
OHA YOOOO