MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak znaleźć kolekcję kodu z regex i złożonymi kryteriami za pomocą sterownika Java MongoDB?

Konstruowanie zapytań to tak naprawdę tworzenie reprezentacji dokumentu BSON, która jest zasadniczo tym samym interfejsem, co standardowe interfejsy HashMap lub List, odpowiednio:

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

Przy czym jest to w zasadzie identyczne ze sposobem, w jaki konstruujesz zapytania w powłoce MongoDB.

Alternatywnie możesz użyć interfejsów konstruktora, jeśli wydaje ci się to bardziej logiczne:

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

Obie formy zasadniczo konstruują BSON dla obu komponentów "zapytanie" i "projekcji" i wystawiają je jako argumenty do .find() metoda. Istnieją również definicje typów klas, jeśli to również Ci odpowiada.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Co to jest operator $unwind w MongoDB?

  2. Limit czasu połączenia Pymongo ze zdalnej maszyny

  3. połącz ECONNREFUSED 127.0.0.1:27017'

  4. Kiedy używać CouchDB przez MongoDB i na odwrót?

  5. Czy Mongoose zapewnia dostęp do poprzedniej wartości właściwości w pre('save')?