Według mongoid documentation o wyraźne łączących („Queryable # w - domyślne przecinają”) Spodziewam się następujące zapytanie:przecinających Mongoid „w” -Queries
Contact.in(id: ['a', 'b']).in(id: ['b', 'c'])
aby spowodować coś takiego:
=> #<Mongoid::Criteria
selector: {"_id"=>{"$in"=>["b"]}}
options: {}
class: Contact
embedded: false>
Ale zamiast tego dostaję nadpisanie wszystkich przypadkach można sobie wyobrazić:
[1] pry(main)> Contact.in(id: ['a', 'b']).in(id: ['b', 'c'])
=> #<Mongoid::Criteria
selector: {"_id"=>{"$in"=>["b", "c"]}}
options: {}
class: Contact
embedded: false>
[2] pry(main)> Contact.in(id: ['a', 'b']).intersect.in(id: ['b', 'c'])
=> #<Mongoid::Criteria
selector: {"_id"=>{"$in"=>["b", "c"]}}
options: {}
class: Contact
embedded: false>
[3] pry(main)> Contact.in(id: ['a', 'b']).union.in(id: ['b', 'c'])
=> #<Mongoid::Criteria
selector: {"_id"=>{"$in"=>["b", "c"]}}
options: {}
class: Contact
embedded: false>
robię niektóre coś nie tak?
Ciekawe wystarczy, jeśli mogę użyć nazwy pola innego niż '' _id' id' - ani żadnego losową nazwę pola, to działa poprawnie. Używanie '_id' w twoim przypadku może być sposobem, ale nadal wygląda jak błąd. –
Właściwie zachowywałoby się to w ten dziwny sposób nie tylko z '_id', ale również z aliasami pól. Myślę, że wiem, jak to naprawić w Origin. –
To jest rozwiązanie, dzięki. Działa za pomocą '' _id'''. Czy powinienem otworzyć problem dotyczący projektu Origin na githubie? Lub skoro wiesz, jak to naprawić, czy otwierasz prośbę o wyciągnięcie? Byłoby wspaniale! – Phil