(mongodb >=1.0.0)
MongoDB\Driver\Query::__construct â CrĂ©er une nouvelle requĂȘte
$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().
filter (array|object)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
| 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. |
| 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". |
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);
}
?>