मेरे पास ये हैं WHERE
PostgreSQL क्वेरी में स्थितियाँ जिन्हें मुझे mongoDB में अनुवाद करने की आवश्यकता है:
(starts_at BETWEEN :starts AND :ends) OR (starts_at <= :starts AND ends_at >= :starts)
ध्यान दें :starts
तथा :ends
UTC बार हैं विशेष रूप से, मैं इसे ActiveRecord से MongoMapper पर ले जा रहा हूं। इसलिए यदि आप मेरी मदद कर सकते हैं तो बोनस!
उत्तर:
जवाब के लिए 2 № 1मोंगोडब में, आप "का उपयोग करते हैं $ या ऑपरेटर इस तरह (साथ में) $ 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 } }
]
)