2011-07-20 5 views
13

En MongoDB, je peux trouver tous les enregistrements dans une collection dans la base de données db qui contiennent un champ particulier en utilisant la requête suivanteTrouver tous les documents contenant un sous-champ donné dans MongoDB

var doc = db.collection_name.find({field_name:{$exists:true}}) 

Considérons maintenant le document suivant:

{ 
    "somefield":"someval", 
    "metadata": {"id":"someval", 
       "client_url":"http://www.something.com" 

       } 
} 

Quelle serait la requête pour obtenir tous les enregistrements ayant le champ id dans les métadonnées?

Aidez-nous s'il vous plaît. Merci Vous

Répondre

25

Vous pouvez utiliser la notation de points pour référencer des champs sous-documents

var doc = db.collection_name.find({"metadata.id":{$exists:true}}) 
+0

Vous pouvez également écrire comme: 'db.collection_name.find ({métadonnées: {id: {existe $: true} }}) '. –

Questions connexes