2014-09-12 4 views
0
tableau

Je vais avoir cette structure de données JSON:objet MongoDB au sein de tableau dans

{ 
data : 
{ 
    fields_data : 
    [ 
    [ 
     { 
     key1 : val 
     }, 
     { 
     key1 : val 
     } 
    ], 
    [ 
     { 
     key2 : val 
     }, 
     { 
     key2 : val 
     } 
    ] 
] 
} 
} 

Je vais avoir du mal à interroger, j'avait essayé d'utiliser le et le elemMatch d'autres manières, mais sans succès.

l'une des requêtes que j'ai essayé:

{ 
    "data.fields_data": { 
     $in: [{ 
      $in: [{ 
       $elemMatch: 
        { 
      $elemMatch : { 
         "key1": "random text" 
         } 
      } 
       }] 

     }] 
    } 
} 

Toutes les suggestions?

Répondre

0

Eh bien, imbriqué $elemMatch devrait fonctionner ici:

db.collection.find{ 
    'data.fields_data': { 
    $elemMatch: { 
     $elemMatch: { 
     key1: val 
     } 
    } 
    } 
} 

Mais vous devriez envisager de se débarrasser de tableau imbriqué ici. Par exemple, vous pouvez utiliser le tableau si des objets à la place:

{ 
    data: { 
    fields_data: [{ 
     data: [ 
     { key1: val }, 
     { key1: val } 
     ]}, { 
     data: [ 
     { key2: val }, 
     { key2: val } 
     ]} 
    ] 
    } 
} 

Il vous permettra d'interroger vos documents en utilisant la notation simple point:

{ 'data.fields_data.data.key1': val } 
préfet
+0

! Je vous remercie. – user2288183

Questions connexes