class Query in MongoDB 8
Hierarchy
- class \Drupal\Core\Entity\Query\QueryBase implements QueryInterface
- class \Drupal\mongodb\Entity\Query implements QueryInterface
Expanded class hierarchy of Query
File
- src/
Entity/ Query.php, line 17 - Contains Drupal\mongodb\Entity\ContentEntityStorage.
Namespace
Drupal\mongodb\EntityView source
class Query extends QueryBase implements QueryInterface {
public function __construct(MongoCollectionFactory $mongo, EntityTypeInterface $entity_type, $conjuction, array $namespaces) {
parent::__construct($entity_type, $conjuction, $namespaces);
$this->mongo = $mongo;
}
/**
* {@inheritdoc}
*/
public function execute() {
try {
$find = $this->condition
->compile($this->entityType);
} catch (QueryException $e) {
return array();
}
$prefix = $this->allRevisions ? 'entity_revision' : 'entity';
$fields = [
'_id' => 1,
'entity_id' => 1,
'revision_id' => 1,
];
$cursor = $this->mongo
->get($prefix . '.' . $this->entityType
->id())
->find($find, $fields);
if ($this->count) {
return $cursor
->count();
}
if ($this->sort) {
foreach ($this->sort as $sort) {
$mongo_sort['values.' . $sort['field']] = strtoupper($sort['direction']) == 'ASC' ? 1 : -1;
}
file_put_contents('/tmp/sort', json_encode($mongo_sort) . "\n", FILE_APPEND);
$cursor
->sort($mongo_sort);
}
if ($this->range) {
$cursor
->skip($this->range['start']);
$cursor
->limit($this->range['length']);
}
$return = array();
foreach ($cursor as $id => $record) {
$key = isset($record['revision_id']) ? $record['revision_id'] : $record['_id'];
$value = isset($record['entity_id']) ? $record['entity_id'] : $record['_id'];
$return[$key] = $value;
}
return $return;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Query:: |
public | function |
Execute the query. Overrides QueryInterface:: |
|
Query:: |
public | function |
Constructs this object. Overrides QueryBase:: |
|
QueryBase:: |
protected | property | Whether access check is requested or not. Defaults to TRUE. | |
QueryBase:: |
protected | property | The list of aggregate expressions. | |
QueryBase:: |
protected | property | Flag indicating whether to query the current revision or all revisions. | |
QueryBase:: |
protected | property | The query metadata for alter purposes. | |
QueryBase:: |
protected | property | The query tags. | |
QueryBase:: |
protected | property | Conditions. | 1 |
QueryBase:: |
protected | property | Aggregate Conditions | |
QueryBase:: |
protected | property | TRUE if this is a count query, FALSE if it isn't. | |
QueryBase:: |
protected | property | Information about the entity type. | 1 |
QueryBase:: |
protected | property | The entity type this query runs against. | |
QueryBase:: |
protected | property | The list of columns to group on. | |
QueryBase:: |
protected | property | Flag indicating whether to query the latest revision. | |
QueryBase:: |
protected | property | List of potential namespaces of the classes belonging to this query. | |
QueryBase:: |
protected | property | The query pager data. | |
QueryBase:: |
protected | property | The query range. | |
QueryBase:: |
protected | property | The list of sorts. | |
QueryBase:: |
protected | property | The list of sorts over the aggregate results. | |
QueryBase:: |
public | function |
Overrides QueryInterface:: |
|
QueryBase:: |
public | function |
Adds additional metadata to the query. Overrides AlterableInterface:: |
|
QueryBase:: |
public | function |
Adds a tag to a query. Overrides AlterableInterface:: |
|
QueryBase:: |
public | function | ||
QueryBase:: |
public | function |
Queries all the revisions. Overrides QueryInterface:: |
|
QueryBase:: |
public | function |
Creates a new group of conditions ANDed together. Overrides QueryInterface:: |
|
QueryBase:: |
public | function |
Add a condition to the query or a condition group. Overrides QueryInterface:: |
1 |
QueryBase:: |
public | function | ||
QueryBase:: |
protected | function | Creates an object holding a group of conditions. | |
QueryBase:: |
public | function |
Makes this a count query. Overrides QueryInterface:: |
|
QueryBase:: |
public | function |
Queries the current revision. Overrides QueryInterface:: |
|
QueryBase:: |
public | function |
Queries for a non-empty value on a field. Overrides QueryInterface:: |
|
QueryBase:: |
protected | function | Generates an alias for a field and its aggregated function. | |
QueryBase:: |
public static | function | Finds a class in a list of namespaces. | |
QueryBase:: |
public | function |
Gets the ID of the entity type for this query. Overrides QueryInterface:: |
|
QueryBase:: |
public | function |
Retrieves a given piece of metadata. Overrides AlterableInterface:: |
|
QueryBase:: |
public static | function | Gets a list of namespaces of the ancestors of a class. | |
QueryBase:: |
public | function | ||
QueryBase:: |
public | function |
Determines if a given query has all specified tags. Overrides AlterableInterface:: |
|
QueryBase:: |
public | function |
Determines if a given query has any specified tag. Overrides AlterableInterface:: |
|
QueryBase:: |
public | function |
Determines if a given query has a given tag. Overrides AlterableInterface:: |
|
QueryBase:: |
protected | function | Gets the total number of results and initialize a pager for the query. | |
QueryBase:: |
public | function |
Queries the latest revision. Overrides QueryInterface:: |
|
QueryBase:: |
public | function |
Queries for an empty field. Overrides QueryInterface:: |
|
QueryBase:: |
public | function |
Creates a new group of conditions ORed together. Overrides QueryInterface:: |
|
QueryBase:: |
public | function |
Enables a pager for the query. Overrides QueryInterface:: |
|
QueryBase:: |
public | function |
Overrides QueryInterface:: |
|
QueryBase:: |
public | function |
Overrides QueryInterface:: |
|
QueryBase:: |
public | function | ||
QueryBase:: |
public | function |
Enables sortable tables for this query. Overrides QueryInterface:: |
|
QueryBase:: |
public | function | Makes sure that the Condition object is cloned as well. | 1 |