sql >> Database >  >> NoSQL >> MongoDB

$bijna zoekopdracht via Java

Eerst heb je een maxDistance en een referentiepunt nodig om nabije documenten te berekenen. De onderstaande code laat zien hoe u een DBObject bouwt om in de buurt van documenten te zoeken.

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

Dit zal resulteren in die json:

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

Als u mongodb 2.2 gebruikt, werkt de bovenstaande code niet. Ik moet het volgende gebruiken:

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

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

De json zal zijn:

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

U kunt hier meer informatie vinden over bijna-zoekopdrachten:

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




  1. Nestjs:Correct schema voor array van subdocumenten in mangoest (zonder standaard _id of herdefinieer ObjectId)

  2. ruby redis client scan vs sleutels

  3. Hoe maak ik verbinding met mongodb met node.js (en authenticeer ik)?

  4. node.JS Express paspoortroutering