sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan finder man kodesamling med regex og komplekse kriterier ved hjælp af Java MongoDB-driver?

At konstruere forespørgsler er egentlig bare at skabe BSON-dokumentrepræsentation, som grundlæggende er den samme grænseflade som standard HashMap- eller List-grænseflader, alt efter hvad der er relevant:

    Document query = new Document("objectKey",new Document( "$regex","Bos"))
        .append("cacheVersionString","08/03/15_11:05:09");

    Document projection = new Document("_id",0)
        .append("objectData",0)
        .append("lastModified",0)
        .append("productCode",0);

    MongoCursor<Document> cursor = collection.find(query).projection(projection).iterator();

Hvor det grundlæggende er identisk med, hvordan du strukturerer forespørgsler i MongoDB-skallen.

Alternativt kan du bruge builder-grænseflader, hvis det virker mere logisk for dig:

    QueryBuilder builder = QueryBuilder.start();

    builder.and("objectKey").regex(Pattern.compile("box"));
    builder.and("cache_version_string").is("08/03/15_11:05:09");

    BasicDBObject query = (BasicDBObject)builder.get();

    Bson projection = Projections.exclude(
            "_id",
            "obectdata",
            "lasModified",
            "productCode"
    );

    MongoCursor<Document> cursor = collection.find(query).projection(projection).iterator();

    while (cursor.hasNext()) {
        Document doc = cursor.next();
        System.out.println(doc.toJson());
    }

Begge former konstruerer i det væsentlige BSON for både "forespørgsel" og "projektion"-komponenter og udsteder dem som argumenter til .find() metode. Der er også klassetypedefinitioner, hvis det også passer dig.




  1. Får hash med symbol som nøgler til mongo i skinner

  2. hvor man kan indsætte funktioner i codeigniter mongodb

  3. Redis:Vis databasestørrelse/størrelse for nøgler

  4. mongodb tæller underdokument og listetotaler