2013-03-22 12 views
7

Questo sta per essere una domanda stupida, ma se ho un oggetto Mongo che è in questo formato:Usando find() per cercare le chiavi nidificate in MongoDB

{ 
    "url": "google.com", 
    "statusCode": 301, 
    "headers": { 
     "location": "http://www.google.com/", 
     "content-type": "text/html; charset=UTF-8", 
     "date": "Fri, 22 Mar 2013 16:27:55 GMT", 
     "expires": "Sun, 21 Apr 2013 16:27:55 GMT", 
     "cache-control": "public, max-age=2592000", 
     "server": "gws", 
     "content-length": "219", 
     "x-xss-protection": "1; mode=block", 
     "x-frame-options": "SAMEORIGIN" 
    } 
} 

Utilizzando db.collections.find(), come faccio a trovare la chiave server o una chiave annidata in un'altra chiave?

Ho provato db.collections.find({headers:{server:"gws"}})

Ho provato citarli in tutte le combinazioni possibili, ma l'uscita è sempre stato vuoto, o ...

Ogni suggerimento sarà apprezzato.

risposta

14

Devi usare la notazione a punti per ottenere quello che stai cercando. Sarebbe simile:

db.collections.find({"headers.server":"gws"}) 

Nel tua ricerca, quello che stai chiedendo è documenti in cui headers è un oggetto che assomiglia {server: "gws"}, in modo che funziona solo se si sa che cosa il documento secondario intera è.

Problemi correlati