sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo hacer una consulta en esta estructura de documento anidado (MongoDB)?

He respondido esto un par de veces acerca de recoger los subdocumentos solo de la colección mongo dentro-de-un-documento/7702608#7702608">aquí y aquí

Simplemente no hay manera de hacer esto actualmente. Este es el comportamiento del filtrado de documentos incrustados de varios niveles; normalmente, el filtro coincidente devolvería el documento completo, no los subconjuntos.

Ya hay dos problemas pendientes en mongo relacionados con este operador posicional ($) en los campos para devolver el especificador y Capacidad de hacer uso de los datos de un subdocumento cuyo contenido se usó para satisfacer una consulta usando el operador $ . (Inicie sesión para votar si realmente necesita la función)

Y su esquema alternativo tampoco es útil aquí.

por lo tanto, debe almacenar cada función en un documento separado como este para que funcione de la manera que desea

función 1

{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 1',
'some_field' : 'zzz'
}

función 2

{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 2',
'some_field' : 'zzz'
}

y consultando

db.features.find({'_id':someobjectid})

solo devolverá la función específica