sql >> Databasteknik >  >> NoSQL >> MongoDB

Rails 4 och mongoid:skapa programmässigt en fråga med flera OCH- och ELLER-villkor

Frågan du vill skapa är:

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

En :field.in fungerar på samma sätt som field in (...) i SQL och det är bara en kort form för en eller-sats. Det gör saker och ting enklare eftersom du bara behöver lägga till .in anrop till criteria nycklar vars valer är arrayer, ungefär så här:

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. Hur man multiuppdatering av en kapslad array i MondoDB?

  2. Rätt sätt att lägga till fält till användarsamlingen i meteor

  3. Begränsa MongoDB RAM-användning

  4. MongoDB frågar optimering