MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

दो $या कथनों को मिलाएं

use test
db.test.insert({a:1})
db.test.insert({a:2, Date2:new Date("01/07/2012")})
db.test.insert({a:3, Date2:new Date("01/08/2012")})
db.test.insert({a:4, Date1:new Date("01/07/2012"), Date2:new Date("01/07/2012")})
db.test.insert({a:5, Date1:new Date("01/07/2012")})
db.test.insert({a:6, Date1:new Date("01/08/2012")})

पहला सबक्वेरीडीबी.टेस्ट.डिस्टिंक्ट('ए', {...});

दूसरा सबक्वेरीडीबी.टेस्ट.डिस्टिंक्ट('ए', {...});

(Date1 == null || Date1 <= today) && (Date2 == null || Date2 <= today)

आराम करें

Date1 == null && Date2 == null ||
Date1 == null && Date2 <= today ||
Date1 <= today && Date2 == null ||
Date1 <= today && Date2 <= today ||

क्वेरी

db.test.find(
{
  $or : 
  [
    {$and: [
        {"Date1": {"$exists": false}},
        {"Date2": {"$exists": false}}
      ]},
    {$and: [
        {"Date1": {"$exists": false}},
        {"Date2": {
            "$exists": true,
            "$lte": new Date("2012-01-07T04:45:52.057Z")}
        }
      ]},
    {$and: [
        {"Date2": {"$exists": false}},
        {"Date1": {
            "$exists": true,
            "$lte": new Date("2012-01-07T04:45:52.057Z")}
        }
      ]},
    {$and: [
        {"Date2": {
            "$exists": true,
            "$lte": new Date("2012-01-07T04:45:52.057Z")}
        },
        {"Date1": {
            "$exists": true,
            "$lte": new Date("2012-01-07T04:45:52.057Z")}
        }
      ]}
  ]
})
>[ 1 ]

यह भी काम करना चाहिए (मान लें कि 'अस्तित्व में नहीं है' और 'शून्य' समान है)

db.test.find(
{
  $and : 
  [
    {$or: [
        {"Date1": null},
        {"Date1": { "$lte": new Date("2012-01-07T04:45:52.057Z")} }
      ]},
    {$or: [
        {"Date2": null},
        {"Date2": { "$lte": new Date("2012-01-07T04:45:52.057Z")} }
      ]}
  ]
}
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. तर्क नोडज में एक स्ट्रिंग होना चाहिए

  2. MongoDB में एक अद्वितीय अनुक्रमणिका का लाभ

  3. मोंगोडब में टाइमस्टैम्प को आज तक कैसे परिवर्तित करें?

  4. जावास्क्रिप्ट में एक चर मान के रूप में खाली वर्ग कोष्ठक क्या दर्शाता है?

  5. मोंगोडब के एकत्रीकरण में विशिष्ट फ़ील्ड वाले दस्तावेज़ों को कैसे समूहित करें