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

मोंगोडब सरणी तत्वों की तुलना करता है

चूंकि आपके पास हर बार फ़ील्ड का सटीक प्रारूप होता है (सर्कल एक दो तत्व सरणी है) आप इसे एकत्रीकरण ढांचे में दो क्षेत्रों में बदल सकते हैं और फिर प्रक्षेपण में उनकी तुलना कर सकते हैं, और केवल उन तत्वों को वापस पाने के लिए मिलान कर सकते हैं जो आपकी आवश्यकता को पूरा करते हैं दूसरा सरणी तत्व पहले सरणी तत्व से बड़ा है।

db.place.aggregate( [
      { $unwind : "$center" },
      { $group : { _id : "$_id", 
                   centerX : {$first:"$center"}, 
                   centerY : {$last:"$center"} 
      } },
      { $project : { YgtX : { $gt : [ "$centerY", "$centerX" ] } } },
      { $match : { YgtX : true } }
] );

अब, यदि आपकी सरणी संख्यात्मक मानों की एक मनमानी जोड़ी थी, तो आप उपरोक्त का उपयोग कर सकते हैं।

आपने टिप्पणियों में कहा था कि आपकी जोड़ी निर्देशांक (अक्षांश, लंबे) का प्रतिनिधित्व करती है - ध्यान रखें कि MongoDB में समन्वय जोड़े हमेशा लंबे, अक्षांश तक संग्रहीत - यदि आपके वास्तविक x, y मान एक समतल (गोलाकार के विपरीत) स्थान पर निर्देशांक थे, तो आप उन सभी दस्तावेज़ों को ढूंढ सकते हैं जिनमें Y समन्वय X से अधिक था, एक एकल भू-स्थानिक क्वेरी के साथ समन्वय करता है:

db.place.find( { center : { $geoWithin : { $geometry : {
                  type:"Polygon", 
                  coordinates:[[[50,50],[-50,50],[-50,-50],[50,50]]]
} } } } );

उपरोक्त क्वेरी मानती है कि आपकी समन्वय प्रणाली X और Y के साथ -50 से 50 तक जाती है और यह त्रिभुज के सभी बिंदुओं को ढूंढती है जो Y>=X वाले सभी निर्देशांक का प्रतिनिधित्व करते हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. आबादी वाले क्षेत्रों पर MongoDB क्वेरी

  2. पारंपरिक आईडी के साथ उल्का संग्रह अद्यतन

  3. PHP MongoDB काउंट रिकॉर्ड्स

  4. जावास्क्रिप्ट इंजन क्या है जो मोंगोडीबी खोल चलाता है?

  5. Symfony2 का mongoDB मेरी संस्थाओं के बजाय एक लॉग करने योग्य कर्सर लौटाता है