Consulta de campos de matriz de MongoDB con más de una condición
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?
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