objects - Mongodb obtener parte específica del documento
mongodb query embedded array (5)
No, no puede devolver solo los valores de x / y; Incluso si limita los campos, la estructura externa sigue siendo devuelta.
Ver Proyecciones de resultados para más información.
Estoy probando mongo db y quiero preguntar si es posible obtener solo una parte específica del documento.
Ejemplo
{
"name" : "MongoDB",
"info" : {
x : 203,
y : 102
}
}
Y solo quiero el contenido de la info
.
Lo más cercano que encontré es db.cellection.find({},{info:1 })
pero esto me devuelve info: content y quiero devolver solo el contenido.
¿Es posible? ¿Cómo?
Podrías hacerlo
db.collection.find({},{''info.x'':1, ''info.y'':1})
pero eso significa enumerar todos y cada uno de los elementos del objeto de información en la proyección, lo que puede o no ser lo que está buscando.
Puede usar la función distinct()
que se parece a lo siguiente:
db.collection.distinct("info", {info : {$exists : true}})
Puede utilizar el marco de agregación :
- Fase de $ match (opcional) para filtrar el resultado.
$ fase del proyecto para seleccionar campos
db.getCollection(''yourCollection'').aggregate([ {$match:{_id:ObjectId("566fc97f5b79dff1a73ca2ae")}}, {$project:{_id:0, "x":"$info.x", "y":"$info.y"}} ])
Lee esto
en este caso, si no especifica ninguna proyección, el método find () devuelve todos los campos de todos los documentos que coinciden con la consulta.