PHP Velho Oeste 2024

MongoCursor::hint

(PECL mongo >=0.9.0)

MongoCursor::hintDonne des indications à la base de données pour la requête

Description

public MongoCursor::hint ( mixed $index ) : MongoCursor

Liste de paramètres

index

Index à utiliser avec cette requête. Si une chaîne est passée, elle doit correspondre au nom de l'index. Si un tableau ou un objet est passé, il doit correspondre à la spécification utilisée pour créer l'index (i.e. le premier argument de la méthode MongoCollection::ensureIndex()).

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Emet une exception MongoCursorException si le curseur a commencé ses itérations.

Historique

Version Description
1.4.0

L'argument index supporte maintenant les noms d'index comme valeur. Pour les versions antérieures à 1.4.0, sur les valeurs sous forme de tableau ou d'objet étaient acceptées.

add a note add a note

User Contributed Notes 1 note

up
1
mr dot bipinks at gmail dot com
8 years ago
For the series we’ll assume we have a collection named posts populated with 500 documents having the following structure:

{
    "_id": ObjectId("5146bb52d852470060001f4"),
    "comments": {
        "0": "This is the first comment",
        "1": "This is the second comment"
    },
    "post_likes": 40,
    "post_tags": {
        "0": "MongoDB",
        "1": "Tutorial",
        "2": "Indexing"
    },
    "post_text": "Hello Readers!! This is my post text",
    "post_type": "private",
    "user_name": "Mark Anthony"
}

The hint() method can be used to force MongoDB to use an index we specify and override the default selection and query optimization process. You can specify the field names used in the index as a argument as shown below:

<?php
// query to find posts with type public and 100 likes
// use hint() to force MongoDB to use the index we created
$cursor = $collection
   
->find(
        array(
           
"post_type" => "public",
           
"post_likes" => 100
       
)
    )
    ->
hint(
        array(
           
"post_type" => 1,
           
"post_likes" => 1
       
)
    );
?>

This ensures the query uses the compound index defined on the post_type and post_likes fields.
To Top