Ich habe zwei Modelle, einen Benutzer und ein eingebettetes Modell Nachricht
class User
include Mongoid::Document
embeds_many :messages
end
class Message
include Mongoid::Document
field :keywords, :type => Array
end
Ich versuche so etwas zu tun:
u = User.last
u.messages.where(:keywords => /sometext/).first
Aber das gibt nichts zurück, das Regex scheint gut zu funktionieren, wenn das Feld nicht vom Typ Array
ist und ein String
ist. Wie kann ich so etwas mit Mongoid machen?
Ich sollte auch erwähnen, dass diese Mongo-Abfrage gut funktioniert:
db.users.find({"messages.keywords" : /index/ })
0 Stimmen
Es sieht so aus, als ob du
mongoid
verwendest. Dies ist eine Wrapper um den MongoDB Ruby-Treiber und gibt seine eigenen Abfragen so aus, wie er es für angemessen hält. Hast du eine Möglichkeit zu überprüfen, welche Abfragemongoid
tatsächlich ausführt? Ist es die gleiche, die du ausgeführt hast?0 Stimmen
Also ich glaube, dass dies tatsächlich ein Problem damit ist, wie Mongoid eingebettete Modelle behandelt, wenn ich die Messages-Modelle in ein referenziertes Modell ziehe, funktioniert diese Abfrage einwandfrei.