eliminar consultas complejas campo mongodb querying odm

mongodb - consultas - Consultar elementos de matriz con Mongo



consultas en mongodb (3)

¿Cómo puedo consultar los batidos que tienen manzana? (abajo hay una colección con 3 documentos)

_id => 1 name => ''best smoothie'' ingredients => Array ( [0] => apple [1] => raspberry [2] => orange [3] => banana ) _id => 2 name => ''summer smoothie'' ingredients => Array ( [0] => lemon [1] => mint ) _id => 3 name => ''yogurt smoothie'' ingredients => Array ( [0] => apple [1] => blueberry )


¿Por qué la gente escribe aplicaciones escalables para batidos?

db.find ({"ingredientes": {$ en: "manzana"}});


De la documentation :

Nota: los campos que contienen matrices coinciden con los operadores condicionales, si solo coincide un elemento .

Por lo tanto, la siguiente consulta:

db.collection.find( { field: { $gt:0, $lt:2 } } );

Coincidirá con un documento que contenga el siguiente campo:

{ field: [-1,3] }


Si simplemente ejecuta la siguiente consulta, MongoDB es lo suficientemente inteligente como para averiguar qué está intentando hacer.

{ ingredients: "apple" }

Mongo verá que los ingredientes son una lista y solo devolverá documentos que contengan "manzana" en algún lugar de esa lista.