このブログを検索

2013/02/25

NestedのRegexの検索

以下のdocumentで"_id"の"ymd”で部分一致(2013-01-05%)の検索をしたかった。

{ _id :{ ymd: "2013-01-05 02", i_id:2}, value {...}}
{ _id :{ ymd: "2013-01-05 03", i_id:5}, value {...}}

(1)$regexでやってみたが、nestedのfieldに対して$regexは出来ない模様。
  • 以下の様に作って見たが全て失敗した。
db.collections_name.find({ '_id.ymd' :  "/2013-01-05/"});
db.collections_name.find({ '_id.ymd' :  {$regex : "/2013-01-05/" } } ); 
  • _idだからと思い全てのフィールドで条件を付けてみたが失敗。
db.collections_name.find({ _id, {ymd : "/2013-01-05/", i_id : 5 } } );
db.collections_name.find({ _id, {ymd' :  {$regex : "/2013-01-05/", i_id :5 } } ); 

  • Regex自体の問題かと思い次の様にNestedされてないfieldでやったら検索出来た。
db.collections_name.find({ field_name : /おに/});

(2)仕方なく以下の様にして今回は検索した。
db.collection_name.find({'_id.ymd' : {$gte :'2013-01-05', $lte:'2013-01-05'}});
db.collections_name.find({'_id.ymd' : {$gte :'2013-01-05 00', $lte:'2013-01-05 23'}});

0 件のコメント:

コメントを投稿