2016-11-08 43 views
0

找到一個文件我有一個JSON這樣的:如何使用嵌套值的MongoDB

 "datos_personales": 
       { 
       "nombre":"Dionel", 
       "apellido":"Delgado", 
       "fechanacimiento":"1990-12-31T04:00:00.000Z", 
       "lugarNacimiento":"Venezuela, Maracaibo", 
       "edad":25, 
     "genero":"Masculino", 
       "cedula":"21076754", 
       "direccion":"San Carlos", 
       "telefonofijo":"0262-6871111", 
       "telefonomovil":"0262-6871111" 
       }, 

     "datos_emergencia": 
       { 
       "nombre1":"Jeaynie", 
       "apellido1":"Valbuena", 
       "telefono1":"0262-6871111", 
       "telefono2":"0262-6871111", 
       "parentesco1":"Madre", 
       "nombre2":"Diones", 
       "apellido2":"Delgado", 
       "telefono3":"0262-6871111", 
       "telefono4":"0262-6871111", 
       "parentesco2":"Padre" 
       }, 

     "datos_sociales": 
      { 
      "civil":"Soltero", 
      "estudios4":true, 
      "ocupacion":"Programador Web", 
      "hijos":"No" 
      }, 
     "datos_medicotratante": 
      { 
      "nombre":"Naikelin", 
      "apellido":"Ruiz", 
      "telefono1":"0262-6871111", 
      "telefono2":"0262-6871111", 
      "especialidad":"Pediatría", 
      "sangre":"AB", 
      "rh":"Negativo", 
      "seguro":"No" 
       } 

`

我需要使用「cedula」找到他們

來查詢這些類型的文件與的NodeJS

{"datos_personales.cedula":21076754} <在這種情況下<

我試圖用這個,但它並沒有取

0123文檔
var ced = 21076754; 
db.getCollection('users').find({"datos_personales.cedula":ced}); 

有什麼建議嗎?

+0

datos_personales。$。ced其中$代表cedula或記錄/對象 – Eric

回答

0
"cedula":"21076754", 

您的結果是一個字符串(請參閱引號)。

查詢更改爲:

var ced = "21076754"; 
db.getCollection('users').find({"datos_personales.cedula":ced}); 
0

對該問題的另一個解決方案是 -

find()方法,而findOne()查詢返回其傳遞的參數相匹配的JSON對象在MongoDB中查詢返回遊標在查詢中。您可以使用以下查詢檢索所需的記錄 - :

db.getCollection('users').findOne({"datos_personales.cedula":ced});