0

私のコレクションはこんな感じです

{
  "name":""
  "type":""
  "arr":[
   {
     "type":""
     "other field"
     ...
   },
  {
     "type":""
     "other field"
     ...
   }
}

私の条件は入力パラメータが名前です。そのため、名前に基づいてドキュメントをフェッチする必要があり、もう1つの条件は、配列の外側と内側のタイプが一致する必要があることです..これらのレコードを単独でフェッチする必要があります..これを達成する方法

4

2 に答える 2

0

パフォーマンスは悪いが、動作する ( http://docs.mongodb.org/manual/reference/operator/where )

db.SOME_COLLECTION.find({
  name:'SOME_VALUE', 
  $where: 
    function() {
      for(var i = 0; i < obj.arr.length; i++) {
        if(obj.arr[i].type==obj.type) {
          return obj
        }
      }
    }
  }
)

ps 集計フレームワークは類推の問題を解決しましたが、この場合、imho、$where 句のみが利用可能です

于 2013-04-19T11:35:30.880 に答える