我试图用一个mongoid查询执行以下两个mongoid查询。我尝试在Mongoid文档中寻找解决方案但找不到任何解决方案。
查询1
Event.where(:start_time.gte => current_date.to_s, :start_time.lte => date_after_2_weeks.to_s)
查询2
Event.where(:stop_time.gte => current_date.to_s, :stop_time.lte => date_after_2_weeks.to_s)
有没有办法只用一个执行上面两个单独的查询?请帮忙。我非常感激。
谢谢, -Parash -
答案 0 :(得分:1)
总是有#34; raw"只需从底层驱动程序中提取,就可以实现Mongo语法。
A" union"基本上意味着$or
:
Event.collection.find({
"$or" => [
{ "start_time" => {
"$gte" => current_date.to_s,
"$lte" => date_after_2_weeks.to_s
},
{ "stop_time" =>
"$gte" => current_date.to_s,
"$lte" => date_after_2_weeks.to_s
}
]
})
和#34;交叉口"基本上意味着$and
:
Event.collection.find({
"start_time" => {
"$gte" => current_date.to_s,
"$lte" => date_after_2_weeks.to_s
},
"stop_time" => {
"$gte" => current_date.to_s,
"$lte" => date_after_2_weeks.to_s
}
})
您可能会收集哪些内容。所以不需要特定的操作数。毕竟,字段名称是不同的。
也许有一个" railsy"这样做的方法,但具体的语法总是有效。