毎回フィールドの正確な形式があるため(円は2要素の配列です)、集計フレームワークでフィールドを2つのフィールドに変換してから、それらを射影で比較し、一致させて、要件を満たす要素だけを取得できます。 2番目の配列要素が最初の配列要素よりも大きい。
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値が(球形ではなく)平らな場所の座標である場合、単一の地理空間クエリでX座標よりも大きいY座標を持つすべてのドキュメントを見つけることができます:
db.place.find( { center : { $geoWithin : { $geometry : {
type:"Polygon",
coordinates:[[[50,50],[-50,50],[-50,-50],[50,50]]]
} } } } );
上記のクエリは、座標系がXとYに沿って-50から50になり、Y>=Xを持つすべての座標を表す三角形内のすべてのポイントを見つけることを前提としています。