tengo un requisito en las que necesito para ejecutar una consulta MongoDB como la siguiente:pregunta en relación con el encadenamiento de múltiples criterios any_of #Mongoid
db.collection.find({ $or : [{"field1" : "value1"}, {"field2" : "value2"}], $or : [{"field3" : "value3"}, {"field4" : "value4"}]})
es decir
(field1 == value 1 or field2 == value2) and (field3 == value3 or field4 == value4)
que quiero lograr esto a través de criterios de encadenamiento porque la consulta se forma dinámicamente desde diferentes partes del código. Pero si intento hacer algo como lo siguiente
criteria = Collection.any_of({"field1" => "value1"}, {"field2" => "value2"}) criteria = criteria.any_of({"field3" => "value3"}, {"field4" => "value4"})
consigo la consulta resultante, donde todos estos se combinan en una sola $ o declaración como
db.collection.find({ $or : [{"field1" : "value1"}, {"field2" : "value2"}, {"field3" : "value3"}, {"field4" : "value4"}]})
¿Cuál es la forma de conseguir "y" de los dos "any_of" utilizando el encadenamiento de criterios?
qué versión de Mongoid usas? – shingara
Yo uso 2.0.0.beta.20 – Rakeesh
Hay un problema con la forma any_of/$ o es manejado por Mongoid. Ha abierto un problema en Github: https://github.com/mongoid/mongoid/issues/issue/569 – Rakeesh