2017-09-20 1 views
1

doctrineオブジェクト・ドキュメント・マネージャ(odm)にフィールド・ショート・ネーム、つまりコレクションのタイプがあり、文字列があります。その短い名前フィールドにその文字列を一致させて、一致する結果を収集します。私はそれを得るために下記のパターンでfind byを使用していますが、結果は空の配列です。はdoctrine odmの配列フィールド上の文字列と一致します

$result = $dm->getRepository('a') 
    ->findBy(['name' => new \MongoRegex("/.*".$partialText .".*/i"), 
     'shortName' => new \MongoRegex("/.*".$partialText .".*/i")], [], $limit, 0); 

答えて

0

文書の入力データの下に考えてみましょう:

"CrTime" : "2017062" 
"CrTime" : "20170622071138" 
"CrTime" : "20170622131845" 
"CrTime" : "20160612131845" 

は、今私は、javaドライバビューからのMongoDBコマンドラインから、2016年に

db.getCollection('name').find({ "parent.CrTime" : { "$regex" : "2016.*"}}); 

を日付だけを一致させたい:

Clause2.put("parent.CrTime", new BasicDBObject("$regex", "2016.*")); 

あなたca n $regexを使用してデータを取得

+0

mongodbシェルで作業していますが、doctrineのメソッドから検索するか、クエリビルダーを使用することができますので、@voldyを解決するのに役立ちますか? –

+0

mongoDB cmdとjava-mongoの両方のドライバを使って試しました。コードがmongoに送るfind()クエリを含むdbObjectをデバッグします。目的のクエリを生成しているかどうかを確認する – voldy

関連する問題