0

私はmongo dbコレクションのstudentTblに3つのフィールドを持っています:

  • ファーストネーム

  • ミドルネーム

  • 苗字

PHPアプリケーションでmongo dbを使用して検索モジュールを作成しており、次のコード行を試しました

            $query = array('$or' => array(                                      
                                    array("registration_temp_perm_no" => new MongoRegex("/$arg/i")),
                                    array("roll_no" => new MongoRegex("/$arg/i")),
                                    array(
                                          array(
                                               '$project' => array(
                                               'fullname' => array('$concat' => array('$first_name', ' ', '$last_name')),
                                               )
                                          ),
                                          array(
                                               '$match' => array(
                                               'fullname' => array('$regex' => $arg, '$options' => 'i'),
                                                )
                                            )
                                    ),
                                    array(
                                          array(
                                               '$project' => array(
                                               'fullname' => array('$concat' => array('$first_name', ' ', '$middle_name')),
                                               )
                                          ),
                                          array(
                                               '$match' => array(
                                               'fullname' => array('$regex' => $arg, '$options' => 'i'),
                                                )
                                            )
                                    ),
                                    array("first_name" => new MongoRegex("/$arg/i")),
                                    array("middle_name" => new MongoRegex("/$arg/i")),
                                    array("last_name" => new MongoRegex("/$arg/i")),
                                    array("email" => new MongoRegex("/$arg/i")),
                                    array("guardian_name" => new MongoRegex("/$arg/i")),
                                    array("phone1" => new MongoRegex("/$arg/i")),
                                    array("dob" => new MongoRegex("/$arg/i")),
                                )
                  );

次の詳細を含むドキュメントが StudentTbl にある場合

  • first_name : "プージャ"

  • middle_name: "マハビル"

  • last_name: "シャルマ"

$args に "Pooja" を指定すると、"pooja" という名前のすべての生徒が取得され、$args に "sharma" を指定すると、sharma という名前のすべての生徒が取得されます。$args に「poo」が含まれている場合、名前全体が指定されている場合、「poonam」や「tapoo」などのように、名前の最後、最初、または途中に「poo」が含まれるすべての生徒をフェッチする必要があります。 $args には「pooja sharma」が含まれており、姓と名にも基づいて取得する必要があります。上記のコードはすべてのレコードを取得しています。また、他の検索条件も維持する必要があることに注意してください。

どんな助けでも大歓迎です。

4

0 に答える 0