2015-08-25 1 views
0

Comment puis-je interroger pour toutes les balises en document suivant dans MongoDB 2 ou 3:requête imbriquée dans MongoDB

{ 
    "_id" : ObjectId("55dc45017137a4e70b8b4569"), 
    "campainName" : "", 
    "themeName" : "theme1", 
    "emailListName" : "eiEmails", 
    "emailSubject" : "", 
    "emailFrom" : "", 
    "allNews" : [ 
     { 
      "type" : "1", 
      "tag" : ['aa','bb','cc'], 
      "link" : "", 
      "image" : "" 
     } 
    ] 
}, 
{ 
    "_id" : ObjectId("55dc45017137a4e70b8b4570"), 
    "campainName" : "", 
    "themeName" : "theme2", 
    "emailListName" : "afaeiEmails", 
    "emailSubject" : "", 
    "emailFrom" : "", 
    "allNews" : [ 
     { 
      "type" : "1", 
      "tag" : ['da','db','dc'], 
      "link" : "", 
      "image" : "" 
     } 
    ] 
} 

je besoin de quelque chose comme ceci dans le résultat:

{['aa','bb','cc'], ['da','db','dc']} 

J'ai besoin style de requête en doctrine odm.

Répondre

1

Essayez quelque chose comme ceci:

db.collection.find({}, {"allNews.tag" : 1, _id : 0})

+0

il ne fonctionne, parce que la liste est numérotée allNews. –

+0

il vous obtenez ceci: '{ "allNews": [ { "tag": [ "aa", "bb", "cc" ] } ] } { "allNews": [{ "tag": [ "da", "db", "dc" ] } ] } ' Ce qui est probablement aussi proche comme vous le ferez sans utiliser de pipeline d'agrégation. – evanchooly

+0

la réponse est correcte pour ce document http://paste.ubuntu.com/12192513/ pas pour le document de la question. AllNews est une liste. –