Pregunta

¿Hay alguna forma de consultar campos de matriz dentro de documentos en MongoDB usando más de una condición? Documento de ejemplo:

{
    'title': 'A document title',
    'array_element': [
        {
            'some_identifier': 'abcdefg',
            'value': 10
        },
        {
            'some_identifier': 'hijklmnop',
            'value': 5
        },
        {
            ...etc...
        }
    ]
}

Necesito consultar una colección para encontrar el valor más bajo para un identificador específico, sin embargo, estos valores se almacenan con otros en una matriz. Sé que puedo consultar la colección para encontrar el documento que contiene el elemento de matriz con el valor más bajo, y que contiene el elemento de matriz que coincide con un identificador, pero no puedo estar seguro de que un elemento de matriz específico coincida con ambas condiciones . ¿Hay alguna forma de hacer esto de manera eficiente?

¿Fue útil?

Solución

Puedes usar el $elemMatch operador Para lograr esto, por ejemplo

foo.find( { "array_element" : 
             { $elemMatch : { 'some_identifier' : 'abcdefg', 'value' : 8 } } } );
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top