MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

$near-Abfrage über Java

Zuerst benötigen Sie eine maxDistance und einen Referenzpunkt, um nahe Dokumente zu berechnen. Der folgende Code zeigt, wie man ein DBObject baut, um in der Nähe von Dokumenten abzufragen.

double[] coords = new double[2];
long distance = 100;

DBObject query = BasicDBObjectBuilder.start()
    .push("location")
        .add("$maxDistance", distance)
        .push("$near")
            .push("$geometry")
                .add("type", "Point")
                .add("coordinates", coords)
    .get();

Dies führt zu diesem json:

{
    "location": {
        "$maxDistance": 100,
        "$near": {
            "$geometry": {
                "type": "Point",
                "coordinates": [
                    0,
                    0
                ]
            }
        }
    }
}

Wenn Sie mongodb 2.2 verwenden, funktioniert der obige Code nicht. Ich muss folgendes verwenden:

double[] coords = new double[2];
long distance = 100;

DBObject query = BasicDBObjectBuilder.start()
    .push("location")
        .add("$maxDistance", distance)
        .add("$near", coords)
    .get();

Der json wird sein:

{
    "location" : {
        "$maxDistance" : 100,
        "$near" : [
            0,
            0
        ]
    }
}

Weitere Informationen zu Nahabfragen finden Sie hier:

http://docs.mongodb.org/manual/reference/operator/near/