sql >> Databáze >  >> NoSQL >> MongoDB

Rails 4 a mongoid:programově sestavte dotaz s více podmínkami AND a OR

Dotaz, který chcete sestavit, je:

MyClass.where(
  :name.in   => [ 'John', 'Luke' ],
  :status.in => [ 'ACTIVE', 'SUSPENDED' ]
)

A :field.in funguje stejně jako field in (...) v SQL a to je jen krátká forma pro příkaz or. To dělá věci docela jednodušší, protože stačí přidat .in volání criteria klíče, jejichž hodnoty jsou pole, něco jako toto:

query = criteria.each_with_object({}) do |(field, values), query|
  field = field.in if(values.is_a?(Array))
  query[field] = values
end
MyClass.where(query)



  1. Je možné zadat data obsazení uvnitř agregačního kanálu na MongoDB?

  2. Odstraňování problémů mongo nebyl nalezen a php_mongo.dll není chyba aplikace win32

  3. docker-compose:spojení redis mezi kontejnery bylo odmítnuto

  4. Mongo shell provede dotaz ze souboru a zobrazí výsledek