protected function StringMongoDBStorage::getFilterFindArray in MongoDB 8
Creates a MongoDB find array based on conditions and filters.
Parameters
$conditions:
$options:
Return value
array
1 call to StringMongoDBStorage::getFilterFindArray()
- StringMongoDBStorage::getStrings in mongodb_locale/
src/ StringStorage.php - Loads multiple source string objects.
File
- mongodb_locale/
src/ StringStorage.php, line 60
Class
Namespace
Drupal\mongodb_localeCode
protected function getFilterFindArray($conditions, $options) {
$find = $this
->getFindArray($conditions);
if (isset($options['filters'])) {
if (isset($options['filters']['source'])) {
$find['source'] = $this
->getMongoRegex($options['filters']['source']);
}
if (isset($options['filters']['translation'])) {
$find['translations'] = array(
// Language must be set otherwise it makes no sense to search for a translation.
'language' => $conditions['language'],
'translation' => $this
->getMongoRegex($options['filters']['translation']),
// We need something so that we always can run a full match.
'customized' => isset($conditions['customized']) ? (bool) $conditions['customized'] : array(
'$exists' => TRUE,
),
);
unset($conditions['customized']);
unset($conditions['language']);
}
}
if (isset($conditions['customized'])) {
$find['translations']['$elemMatch']['customized'] = $conditions['customized'];
}
if (isset($conditions['language'])) {
$find['translations']['$elemMatch']['language'] = $conditions['language'];
}
if (isset($conditions['translated']) && empty($find['translations'])) {
$find['translations']['$exists'] = $conditions['translated'];
}
return $find;
}