2
假設我有一個用戶文檔,其中有許多活動作爲嵌入式文檔。每當用戶在網站上做某事時,就會創建一個活動文檔(作爲示例)。在Mongoid中查詢帶有日期範圍的嵌入文檔的文檔
class User
include Mongoid::Document
has_many :activities
end
class Activity
include Mongoid::Document
field :action_executed_at, type: DateTime
belongs_to :user
end
我現在想在今天之後查詢所有用戶的活動。這可以用Mongoid完成嗎?我試着像查詢:
User.where("activities.action_executed_at" => {"$gt" => DateTime.now.to_s})
甚至:
User.where("activities" => {
"$elemMatch" => {
"action_executed_at" => {
"$gt" => DateTime.now.to_s
}
}
})
但他們總是返回空的集合。
沒有成功。只要我打電話指望Mongoid告訴我的這些'where'方法:「BSON :: InvalidDocument:無法將類DateTime的對象序列化爲BSON。」這可能是一種其他東西出錯的味道嗎? – Cimm
在上面的查詢中試試'DateTime.now.utc'或'DateTime.now.to_s'的值... – abhas
謝謝,試過了,但總是返回0結果。我在想這可能是一個跡象,有什麼我做錯了? – Cimm