sql >> Database teknologi >  >> NoSQL >> MongoDB

Rails 4 og mongoid:opbyg en forespørgsel programmæssigt med flere OG- og ELLER-betingelser

Den forespørgsel, du vil bygge, er:

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

En :field.in virker på samme måde som field in (...) i SQL, og det er kun en kort form for en eller-sætning. Det gør tingene en del nemmere, da du bare skal tilføje .in opkald til criteria nøgler, hvis værdier er arrays, noget som dette:

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. MongoDB sikkerhedskopiering og gendannelse ved hjælp af MongoDump

  2. Hvilken NoSQL-database skal jeg bruge til logning?

  3. Mongoose-forespørgsel returnerer null

  4. Mgo-aggregering:hvordan genbruger man modeltyper til at forespørge og fjerne blandede resultater?