私は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」が含まれており、姓と名にも基づいて取得する必要があります。上記のコードはすべてのレコードを取得しています。また、他の検索条件も維持する必要があることに注意してください。
どんな助けでも大歓迎です。