/ / Preložiť podmienky PostgreSQL do mongoDB - postgresql, mongodb, activerecord, mongomapper

Preložte podmienky PostgreSQL do mongoDB - postgresql, mongodb, activerecord, mongomapper

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ď č. 1

V 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 } }
]
)