sql >> Database >  >> NoSQL >> MongoDB

Volgorde automatisch verhogen in mongodb met java

Als u eerst een veld voor automatisch ophogen gebruikt, moet u een verzameling maken met behulp van mongoDB-shell en de verzameling moet als volgt zijn:

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

Dus je krijgt counters verzamelingen die een veld bevatten zoals _id,seq , maak nu getNextSequence functie in java en deze functie heeft parameter userid als string dus getNextSequence functioneren als volgt:

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

}

De bovenstaande functie retourneert seq tel en gebruikte deze functie in main methode als:

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
}

Nu in counters collectie bevat drie documenten die name . bevatten als Sarah C. and Bob D. respectievelijk en één standaarddocument dat we de eerste keer handmatig hebben ingevoegd en het verhoogt seq zoals deze { "_id" : "userid", "seq" : 2 }



  1. MongoDb via jndi

  2. Hoe een unieke object-ID te genereren in mongodb

  3. MongoDB versus Cassandra

  4. Kan module '../build/Release/bson'] niet vinden code:'MODULE_NOT_FOUND' } js-bson:kan c++ bson-extensie niet laden, met pure JS-versie