2016-11-08 31 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});