如何在MongoDB中查询具有特定条件的数组

时间:2014-06-25 08:42:03

标签: javascript mongodb database

这是我的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年前我们认为应该有一个更好的方法。

感谢您阅读我的问题。

1 个答案:

答案 0 :(得分:2)

与您引用的问题不完全相同。您的“坐标”固定为两个位置,经度和纬度。你真正需要的只是“点符号”:

 db.collection.find({ "geometry.coordinates.0": { "$gt": -27 } })

因此0代表第一个位置(经度),你可以使用1代表第二个位置(纬度)。