这是我的mongodb对象示例
{
"_id": ObjectId("asdklfjasdlkfjal"),
"geometry": {
"type": "Point",
"coordinates": [
-26.62375,
152.86114
]
}
},
{
"_id": ObjectId("asdklfjasdlkfjal2"),
"geometry": {
"type": "Point",
"coordinates": [
-28.62375,
123.86114
]
}
}
我已阅读document here,但它没有显示只查询数组的第一个元素的选项。
我在MongoHub
上尝试了以下一行,但它给了我"无效的运算符:$和" MSG
{"geometry.coordinates": {$and: [{$lt: -30, $gt: 151}, {$lt: -35, $gt: 151}]}}
例如,我想查询值大于-27的元素作为数组的第一个值。因此,无论第二个元素在数组中具有什么值(或者反过来),都应该只提取第一个示例对象。
此处也发现了the same question,但是3年前我们认为应该有一个更好的方法。
感谢您阅读我的问题。
答案 0 :(得分:2)
与您引用的问题不完全相同。您的“坐标”固定为两个位置,经度和纬度。你真正需要的只是“点符号”:
db.collection.find({ "geometry.coordinates.0": { "$gt": -27 } })
因此0
代表第一个位置(经度),你可以使用1
代表第二个位置(纬度)。