sql >> Database >  >> NoSQL >> MongoDB

MongoDb Deelnemen aan query met PHP

U kunt daarvoor een aggregatiepijplijn gebruiken

  1. Gebruik $lookup om deel te nemen aan de twee collecties,
  2. $unwind de resulterende array van $lookup podium
  3. $match om de regex-zoekopdracht uit te voeren

Als u de regex . moet doen zoek op title van master document ook, je kunt dat toevoegen aan je $or zoekopdracht van de $match fase, en als je dat niet wilt, vergeet dan niet te verwijderen uit de $or-query (ik heb het toegevoegd).

$pipeline = array(
    array(
        '$lookup' => array(
            'from' => 'masters',
            'localField' => '$master_id',
            'foreignField' => '$_id',
            'as' => 'master'
        )
    ),
    array(
        '$unwind' => Array(
            'path' => '$master',
            'preserveNullAndEmptyArrays' => true
         ) 
    ),
    array(
        '$match' => array(
            '$or' => array(
                array(
                    'title' => new \MongoDB\BSON\Regex($queryString),
                ),
                array(
                    'description' => new \MongoDB\BSON\Regex($queryString),
                ),
                array(
                    'master.title' => new \MongoDB\BSON\Regex($queryString),
                ),
            )
        )
    ),
    array(
        '$sort' => array(
            'field_name' => 1
        )
    ),
    array(
        '$limit' => 10
    )
)

$results = $details->aggregate($pipeline);

Nu, mijn php is niet zo geweldig, toch ben ik erin geslaagd om de vraag voor je te schrijven. Wijzig/wijzig de code naar behoefte.

Het punt is dat ik je het idee heb gegeven hoe je dit kunt bereiken. Ik hoop dat dat helpt.

Bewerken

Om te sort , en limit , gebruik $sort en $limit pijplijnfasen, ik heb dat als antwoord toegevoegd.

Vergeet niet field_name te vervangen met het daadwerkelijke veld waarmee u het resultaat wilt sorteren.




  1. MongoDb tekst zoeken met taalondersteuning

  2. MongoDB-gegevens in rust versleutelen

  3. Mongodb vondst's terugkerende documentbestelling

  4. Mongoose:vind documenten van het gemengde schematype met meerdere vermeldingen