MongoDB\Driver\Query::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Query::__construct — CrĂ©er une nouvelle requĂȘte

Description

final public function MongoDB\Driver\Query::__construct(array|object $filter, ?array $queryOptions = null)

Construit un nouvel objet MongoDB\Driver\Query, qui est un objet de valeur immuable qui reprĂ©sente une requĂȘte de base de donnĂ©es. La requĂȘte peut ensuite ĂȘtre exĂ©cutĂ©e avec MongoDB\Driver\Manager::executeQuery().

Liste de paramĂštres

filter (array|object)
L'» attribut de la requĂȘte. Un attribut vide va faire correspondre tous les documents de la collection.

Note: Lors de l'Ă©valuation des critĂšres de requĂȘte, MongoDB compare les type et les valeurs en fonction de leur propre » rĂšgles de comparaison pour les types BSON, qui diffĂšre des rĂšgles de comparaison et de manipulation des type de PHP. Lors de la correspondance d'un type BSON spcĂ©cial, les critĂšres de requĂȘte doivent utiliser la classe BSON (ex. : utiliser MongoDB\BSON\ObjectId pour correspondre Ă  un » ObjectId).

queryOptions

queryOptions
Option Type Description
allowDiskUse bool Autorise MongoDB à utiliser des fichiers temporaires sur le disque pour stocker des données dépassant la limite de mémoire systÚme de 100 mégaoctets lors du traitement d'une opération de tri bloquante.
allowPartialResults bool Pour les requĂȘtes sur une collection fragmentĂ©e, retourne des rĂ©sultats partiels du mongos si certains fragments ne sont pas disponibles au lieu de gĂ©nĂ©rer une erreur. Retombe sur l'option dĂ©prĂ©ciĂ©e "partial" si non spĂ©cifiĂ©e.
awaitData bool Utiliser en conjonction avec l'option "tailable" pour bloquer temporairement une opĂ©ration getMore sur le curseur si Ă  la fin des donnĂ©es plutĂŽt que de ne pas retourner de donnĂ©es. AprĂšs une pĂ©riode d'attente, la requĂȘte se termine normalement.
batchSize int Le nombre de documents Ă  retourner dans le premier lot. Par dĂ©faut Ă  101. Une taille de lot de 0 signifie que le curseur sera Ă©tabli, mais aucun document ne sera retournĂ© dans le premier lot. Dans les versions de MongoDB antĂ©rieures Ă  3.2, oĂč les requĂȘtes utilisent le protocole de filaire hĂ©ritĂ© OP_QUERY, une taille de lot de 1 fermera le curseur indĂ©pendamment du nombre de documents.
collation array|object » Collation permet aux utilisateurs de spécifier des rÚgles spécifiques au langage pour la comparaison des chaßnes, par exemple, des rÚgles pour les majuscules ou les accents. Lors de la spécification d'une collation, le champ "locale" est obligatoire ; tous les autres champs de la collation sont optionnels. Pour la description de ces champs, reportez-vous au » document Collation. Si la collation n'est pas spécifiée mais que la collection a une collation par défaut, l'opération utilisera la collation spécifiée pour la collection. Si aucune collation n'est spécifiée pour la collection ou pour l'opération, MongoDB utilisera le binaire simple de comparaison utilisé dans les versions précédentes pour les comparaisons des chaßnes. Cette option est disponible en MongoDB 3.4+ et une exception sera émise au moment de l'exécution si elle est spécifiée dans une version antérieure.
comment mixed Un commentaire arbitraire pour aider Ă  tracer l'opĂ©ration Ă  travers le profil de la base de donnĂ©es, la sortie currentOp et les journaux. Le commentaire peut ĂȘtre n'importe quel type BSON valide pour MongoDB 4.4+. Les versions de serveur antĂ©rieures ne prennent en charge que les valeurs de chaĂźne. Retombe sur l'option dĂ©prĂ©ciĂ©e "$comment" si non spĂ©cifiĂ©e.
exhaust bool Le flux de données en aval à pleine puissance dans plusieurs paquets "more", en supposant que le client lira entiÚrement toutes les données interrogées. Plus rapide lorsqu'on tire beaucoup de données et qu'on sait qu'on veut tout tirer. Remarque : le client n'est pas autorisé à ne pas lire toutes les données sauf s'il ferme la connexion. Cette option n'est pas prise en charge par la commande find dans MongoDB 3.2+ et forcera le pilote à utiliser la version du protocole de filaire hérité (c'est-à-dire OP_QUERY).
explain bool Si true le curseur MongoDB\Driver\Cursor retournĂ© contiendra un seul document qui dĂ©crit le processus et les index utilisĂ©s pour retourner la requĂȘte. Retombe sur l'option dĂ©prĂ©ciĂ©e "$explain" si non spĂ©cifiĂ©e. Cette option n'est pas prise en charge par la commande find dans MongoDB 3.2+ et ne sera respectĂ©e que lors de l'utilisation de la version du protocole de filaire hĂ©ritĂ© (c'est-Ă -dire OP_QUERY). La commande » explain doit ĂȘtre utilisĂ©e sur MongoDB 3.0+.
hint string|array|object SpĂ©cification de l'index. SpĂ©cifiez soit le nom de l'index en tant que chaĂźne, soit le modĂšle de clĂ© d'index. Si spĂ©cifiĂ©, le systĂšme de requĂȘte ne considĂ©rera que les plans utilisant l'index suggĂ©rĂ©. Retombe sur l'option dĂ©prĂ©ciĂ©e "hint" si non spĂ©cifiĂ©e.
let array|object Dictionnaire des noms et des valeurs des paramĂštres. Les valeurs doivent ĂȘtre des constantes ou des expressions fermĂ©es qui ne font pas rĂ©fĂ©rence aux champs du document. Les paramĂštres peuvent ensuite ĂȘtre accĂ©dĂ©s en tant que variables dans un contexte d'expression agrĂ©gĂ©e (par exemple $$var). Cette option est disponible dans MongoDB 5.0+ et entraĂźnera une exception au moment de l'exĂ©cution si elle est spĂ©cifiĂ©e pour une version antĂ©rieure du serveur.
limit int Le nombre maximum de documents à retourner. Si non spécifié, alors par défaut à aucune limite. Une limite de 0 est équivalente à ne pas définir de limite.
max array|object La limite supérieure exclusive pour un index spécifique. Retombe sur l'option dépréciée "$max" si non spécifiée.
maxAwaitTimeMS int Entier positif indiquant la limite de temps en millisecondes pour le serveur pour bloquer une opĂ©ration getMore si aucune donnĂ©e n'est disponible. Cette option ne doit ĂȘtre utilisĂ©e qu'en conjonction avec les options "tailable" et "awaitData".
maxTimeMS int La limite de temps cumulative en millisecondes pour le traitement des opĂ©rations sur le curseur. MongoDB arrĂȘte l'opĂ©ration au premier point d'interruption le plus proche. Retombe sur l'option dĂ©prĂ©ciĂ©e "$maxTimeMS" si non spĂ©cifiĂ©e.
min array|object La limite inférieure inclusive pour un index spécifique. Retombe sur l'option dépréciée "$min" si non spécifiée.
noCursorTimeout bool EmpĂȘche le serveur de mettre fin aux curseurs inactifs aprĂšs une pĂ©riode d'inactivitĂ© (10 minutes).
projection array|object Les » spécifications de projection pour déterminer quels champs inclure dans les documents retournés. Lors de l'utilisation de la fonctionnalité ODM pour désérialiser les documents en tant que leur classe PHP d'origine, il faut s'assurer d'inclure le champ __pclass dans la projection. Cela est nécessaire pour que la désérialisation fonctionne et sans cela, l'extension renverra (par défaut) un objet stdClass à la place.
readConcern MongoDB\Driver\ReadConcern Un read concern à appliquer à l'opération. Par défaut, le read concern de l'URI de connexion MongoDB sera utilisé. Cette option est disponible dans MongoDB 3.2+ et entraßnera une exception au moment de l'exécution si elle est spécifiée pour une version de serveur plus ancienne.
returnKey bool Si true, ne retourne que les clés d'index dans les documents résultants. La valeur par défaut est false. Si true et que la commande find n'utilise pas d'index, les documents retournés seront vides. Retombe sur l'option dépréciée "$returnKey" si non spécifiée.
showRecordId bool DĂ©termine si l'identifiant d'enregistrement doit ĂȘtre retournĂ© pour chaque document. Si true, ajoute un champ "$recordId" de premier niveau aux documents retournĂ©s. Retombe sur l'option dĂ©prĂ©ciĂ©e "$showDiskLoc" si non spĂ©cifiĂ©e.
singleBatch bool DĂ©termine si le curseur doit ĂȘtre fermĂ© aprĂšs le premier lot. Par dĂ©faut Ă  false.
skip int Nombre de documents à sauter. Par défaut à 0.
sort array|object La spécification de tri pour l'ordonnancement des résultats. Retombe sur l'option dépréciée "$orderby" si non spécifiée.
tailable bool Renvoie un curseur tailable pour une collection capée.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Historique

Version Description
PECL mongodb 2.0.0 L'option "partial" a Ă©tĂ© supprimĂ©e. Utiliser "allowPartialResults" Ă  la place. L'option "maxScan" a Ă©tĂ© supprimĂ©e. Le support pour cette option a Ă©tĂ© supprimĂ© dans MongoDB 4.2. L'option "modifiers" a Ă©tĂ© supprimĂ©e. Cette option Ă©tait utilisĂ©e pour les modificateurs d'ancienne requĂȘte, qui sont tous dĂ©prĂ©ciĂ©s. L'option "oplogReplay" a Ă©tĂ© supprimĂ©e. Cela est ignorĂ© dans MongoDB 4.4 et plus rĂ©cent. L'option "snapshot" a Ă©tĂ© supprimĂ©e. Son support a Ă©tĂ© supprimĂ© dans MongoDB 4.0. Une valeur nĂ©gative pour l'option "limit" n'implique plus true pour l'option "singleBatch". Pour ne recevoir qu'un seul lot de rĂ©sultats, combinez une valeur positive "limit" avec l'option "singleBatch".
PECL mongodb 1.14.0 Ajout de l'option "let". L'option "comment" accepte désormais n'importe quel type.
PECL mongodb 1.8.0 Ajout de l'option "allowDiskUse". L'option "oplogReplay" est dépréciée.
PECL mongodb 1.5.0 Les options "maxScan" et "snapshot" sont dépréciées.
PECL mongodb 1.3.0 Ajout de l'option "maxAwaitTimeMS"
PECL mongodb 1.2.0 Ajout des options "allowPartialResults", "collation", "comment", "hint", "max", "maxScan", "maxTimeMS", "min", "returnKey", "showRecordId", et "snapshot". Renommer l'option "partial" en "allowPartialResults". Pour la compatibilitĂ© ascendante, "partial" sera toujours lu si "allowPartialResults" n'est pas spĂ©cifiĂ©. Supprime l'option "secondaryOk" obsolĂšte. Pour les requĂȘtes utilisant le protocole de filaire hĂ©ritĂ© OP_QUERY, le pilote dĂ©finira le bit secondaryOk selon les besoins conformĂ©ment Ă  la » SpĂ©cification de sĂ©lection du serveur.
PECL mongodb 1.1.0 Ajout de l'option "readConcern".

Exemples

Exemple #1 Exemple de MongoDB\Driver\Query::__construct()

<?php
/* Sélectionne uniquement les documents écrits par "bjori" avec au moins 100 vues */
$filter = [
'author' => 'bjori',
'views' => [
'$gte' => 100,
],
];

$options = [
/* Retourne uniquement les champs suivants dans les documents correspondants */
'projection' => [
'title' => 1,
'article' => 1,
],
/* Retourne les documents dans l'ordre décroissant des vues */
'sort' => [
'views' => -1
],
];

$query = new MongoDB\Driver\Query($filter, $options);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$readPreference = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::PRIMARY);
$cursor = $manager->executeQuery('databaseName.collectionName', $query, ['readPreference' => $readPreference]);

foreach(
$cursor as $document) {
var_dump($document);
}

?>

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.