MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

requête $near via Java

Vous aurez d'abord besoin d'un maxDistance et d'un point de référence pour calculer les documents proches. Le code ci-dessous montre comment construire un DBObject pour interroger des documents proches.

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();

Cela se traduira par ce json :

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

Si vous utilisez mongodb 2.2, le code ci-dessus ne fonctionnera pas. Je dois utiliser les éléments suivants :

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

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

Le json sera :

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

Vous pouvez trouver plus d'informations sur les requêtes de proximité ici :

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