Karena Anda memiliki format bidang yang tepat setiap kali (lingkaran adalah larik dua elemen), Anda dapat mengubahnya dalam kerangka agregasi menjadi dua bidang dan kemudian membandingkannya dalam proyeksi, dan mencocokkan untuk mendapatkan kembali hanya elemen yang memenuhi kebutuhan Anda elemen array kedua lebih besar dari elemen array pertama.
db.place.aggregate( [
{ $unwind : "$center" },
{ $group : { _id : "$_id",
centerX : {$first:"$center"},
centerY : {$last:"$center"}
} },
{ $project : { YgtX : { $gt : [ "$centerY", "$centerX" ] } } },
{ $match : { YgtX : true } }
] );
Sekarang, jika array Anda adalah pasangan nilai numerik yang berubah-ubah, maka Anda dapat menggunakan yang di atas.
Anda mengatakan dalam komentar bahwa pasangan Anda mewakili koordinat (lat, long) - perlu diingat bahwa dalam pasangan koordinat MongoDB selalu disimpan selama, lat - jika nilai x, y Anda yang sebenarnya adalah koordinat di tempat datar (berlawanan dengan bola), Anda dapat menemukan semua dokumen yang memiliki koordinat Y lebih besar dari koordinat X dengan satu kueri geospasial:
db.place.find( { center : { $geoWithin : { $geometry : {
type:"Polygon",
coordinates:[[[50,50],[-50,50],[-50,-50],[50,50]]]
} } } } );
Kueri di atas mengasumsikan bahwa sistem koordinat Anda bergerak dari -50 ke 50 sepanjang X dan Y dan menemukan semua titik dalam segitiga yang mewakili semua koordinat yang memiliki Y>=X.