Mám ich WHERE
podmienky v PostgreSQL dotaze, ktoré potrebujem preložiť do mongoDB:
(starts_at BETWEEN :starts AND :ends) OR (starts_at <= :starts AND ends_at >= :starts)
Poznámka :starts
a :ends
sú časy UTC. Konkrétne to presúvam z ActiveRecordu do MongoMapperu. Takže bonus, ak mi s tým môžeš pomôcť!
odpovede:
2 pre odpoveď č. 1V mongodbe by ste použili $ alebo operátor ako je tento (spolu s $ gte a $ lte):
db.collection.find({
$or: [
{ starts_at: { $gte: starts }, starts_at: { $lte: ends } },
{ starts_at: { $lte: starts }, ends_at: { $gte: starts } }
]
});
V MongoMapper by sa prekladal do:
Model.where(
:$or => [
{ :starts_at => { :$gte => starts, :$lte => ends } },
{ :starts_at => { :$lte => starts }, :ends_at => { :$gte => starts } }
]
)