mongodb の createquerybuilder についていくつか調査した結果、問題を解決できません。データの構造は次のとおりです。
“Field1” : { “Field2”: “value1a”,“Field3” : {“Field4” : “value2a”,”Field5” : “value3a”}}
“Field1” : { “Field2”: “value1b”,“Field3” : {“Field4” : “value2b”,”Field5” : “value3b”}}
“Field1” : { “Field2”: “value1c”,“Field3” : {“Field4” : “value2c”,”Field5” : “value3c”}}
Field5 = value3a の行全体を取得するにはどうすればよいですか? 以下のコードを実行しましたが、レコードが返されません:
$keywords = "test";
$keywords_Array = explode(',',$keywords);
$nbKeyword = count($keywords_Array);
$odm = $this->get("doctrine mongodb");
$donnees = $odm->createQueryBuilder("MyBundle:MyCollection");
for($i=0; $i<$nbKeyword; $i++){
$search = new \MongoRegex('/"Field5":"'.$ keywords_Array [$i].'"/');
$donnees = $donnees->field("Field1")->equals(new \MongoRegex('/"Field3":"'.$search.'"/'));
}
$donnees = $donnees->getQuery()->execute();
Foreach($donnees as $ data)
{
$resp = $data->getResult();
}
Return $resp;
データの別の構造 (ここでは、データは値の配列です):
“Field1” : {“Field2”: [“value1”,”value2”,”value3”]}
Field2 = value3 の行全体を取得するにはどうすればよいですか? 以下のコードは上記と同じですが、レコードは返されません。
$keywords = "test";
$keywords_Array = explode(',',$keywords);
$nbKeyword = count($keywords_Array);
$odm = $this->get("doctrine mongodb");
$donnees = $odm->createQueryBuilder("MyBundle:MyCollection");
for($i=0; $i<$nbKeyword; $i++){
$donnees = $donnees-> field("Field1")->equals(new \MongoRegex('/"Field2":"'. $keywords_Array [$i].'"/i'));
}
$donnees = $donnees->getQuery()->execute();
Foreach($donnees as $ data)
{
$resp = $data->getResult();
}
Return $resp;
前もって感謝します