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

Automatyczna sekwencja inkrementacji w mongodb przy użyciu java

Używając opcji Utwórz automatyczne pole sekwencji, powinieneś najpierw utworzyć kolekcję za pomocą powłoki mongoDB, a kolekcja powinna wyglądać następująco:

db.counters.insert(
{
  _id: "userid",
  seq: 0
})

Więc otrzymujesz counters kolekcje zawierające pola takie jak _id,seq , teraz utwórz getNextSequence funkcja w java i ta funkcja ma parametr userid jako ciąg, więc getNextSequence działać tak:

public static Object getNextSequence(String name) throws Exception{
    MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
    // Now connect to your databases
    DB db = mongoClient.getDB("demo");
    DBCollection collection = db.getCollection("counters");
    BasicDBObject find = new BasicDBObject();
    find.put("_id", name);
    BasicDBObject update = new BasicDBObject();
    update.put("$inc", new BasicDBObject("seq", 1));
    DBObject obj =  collection.findAndModify(find, update);
    return obj.get("seq");

}

Powyższa funkcja zwraca seq count i używał tej funkcji w main metoda jak :

public static void main(String[] args) throws Exception {

    MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
    // Now connect to your databases
    DB db = mongoClient.getDB("demo");
    DBCollection collection = db.getCollection("counters");
    BasicDBObject document = new BasicDBObject();

    document.put("_id", getNextSequence("userid"));
    document.put("name","Sarah C.");
    collection.insert(document); // insert first doc

    document.put("_id", getNextSequence("userid"));
    document.put("name", "Bob D.");
    collection.insert(document); // insert second doc
}

Teraz w counters kolekcja zawiera trzy dokumenty zawierające name jako Sarah C. and Bob D. odpowiednio i jeden domyślny dokument, który wstawiliśmy ręcznie za pierwszym razem i zwiększyliśmy seq jak to { "_id" : "userid", "seq" : 2 }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak mogę przechowywać porę dnia w MongoDB? Jako ciąg? Podaj dowolny rok/miesiąc/dzień?

  2. Automatycznie przedawniaj dokumenty kolekcji MongoDB

  3. Zaktualizuj element w tablicy, jeśli istnieje, wstaw inny element w tej tablicy w MongoDb

  4. Jaka jest różnica między replaceOne() i updateOne() w MongoDB?

  5. Wstawianie danych do zagnieżdżonej tablicy w mongodb