sql >> Databáze >  >> NoSQL >> MongoDB

Jak najít kolekci kódu pomocí regulárního výrazu a složitých kritérií pomocí ovladače Java MongoDB?

Vytváření dotazů je ve skutečnosti jen vytváření reprezentace dokumentu BSON, což je v podstatě stejné rozhraní jako standardní rozhraní HashMap nebo List:

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

Kde je to v podstatě totožné s tím, jak strukturujete dotazy v prostředí MongoDB.

Alternativně můžete použít rozhraní pro tvůrce, pokud se vám to zdá logičtější:

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

Obě formy v podstatě konstruují BSON pro komponenty "query" i "projection" a vydávají je jako argumenty pro .find() metoda. Existují také definice typů tříd, pokud vám to také vyhovuje.




  1. Redistogo a Sidekiq na Heroku:Nelze se připojit

  2. Jak aktualizovat konkrétní pole v mongoose?

  3. nahrání souboru do složky na webu node-express pomocí multer s mongodb

  4. pochopit systém mezipaměti MongoDB