В mongodb вы бы использовали оператор $ или , например, (вместе с $ gte и $ lte ):
db.collection.find({
$or: [
{ starts_at: { $gte: starts }, starts_at: { $lte: ends } },
{ starts_at: { $lte: starts }, ends_at: { $gte: starts } }
]
});
В MongoMapper этобудет переводить на:
Model.where(
:$or => [
{ :starts_at => { :$gte => starts, :$lte => ends } },
{ :starts_at => { :$lte => starts }, :ends_at => { :$gte => starts } }
]
)