2014-05-18 6 views
9

क्या तत्व मिलान में $ या कथन करने का कोई तरीका है?

मैं इस है:

opened: { 
    $elemMatch: { 
     closed: false 
     openingEvening: {$lte: currentTime}, 
     closingEvening: {$gte: currentTime}, 
    } 
} 

और एल openingMorning जोड़ना चाहते हैं

मैं कैसे के रूप में यह विस्तार कर सकते हैं:

opened: { 
    $elemMatch: { 
     closed: false 
     {$or: [ 
      {openingEvening: {$lte: currentTime}, closingEvening: {$gte: currentTime},}, 
      {openingMorning: {$lte: currentTime}, closingMorning: {$gte: currentTime}} 
     ] 
     } 
    } 
} 

यह संभव तरह कुछ है?

उत्तर

13

ज़रूर यह है सिर्फ वाक्य रचना ऊपर समाशोधन लेकिन आप मूल रूप से यह था:

{ 
    "opened": { 
     "$elemMatch": { 
      "closed": false, 
      "$or": [ 
       { 
        "openingEvening": { "$lte": currentTime }, 
        "closingEvening": { "$gte": currentTime } 
       }, 
       { 
        "openingMorning": { "$lte": currentTime }, 
        "closingMorning": { "$gte": currentTime } 
       } 

      ] 
     } 
    } 
} 

और डेटा का एक नमूना विचार दिया:

{ 
    "_id" : ObjectId("537969cee90c3db84958aa86"), 
    "opened" : [ 
      { 
        "closed" : false, 
        "openingEvening" : 17, 
        "closingEvening" : 22, 
        "openingMorning" : 11, 
        "closingMorning" : 14 
      } 
    ] 
} 
{ 
    "_id" : ObjectId("53796a47e90c3db84958aa87"), 
    "opened" : [ 
      { 
        "closed" : false, 
        "openingMorning" : 13, 
        "closingMorning" : 14 
      } 
    ] 
} 

12 के एक वर्तमान समय होगा पहले मैच करें लेकिन दूसरा दस्तावेज़ नहीं, लेकिन 13 का मान दोनों से मेल खाता है।

भी ध्यान देने योग्य बात ये एक सरणी के भीतर हैं कि इतने अपने अनुमानित उद्देश्य आप शायद एक "सप्ताह का दिन" क्षेत्र वहाँ में रूप में अच्छी तरह

शामिल करना चाहते दिया
संबंधित मुद्दे