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