Wenn Sie „Create an Auto-Incrementing Sequence Field“ verwenden, sollten Sie zuerst eine Sammlung mit der MongoDB-Shell erstellen, und die Sammlung sollte wie folgt aussehen:
db.counters.insert(
{
_id: "userid",
seq: 0
})
Sie erhalten also counters
Sammlungen, die Felder wie _id,seq
enthalten , erstellen Sie nun getNextSequence
Funktion in Java und diese Funktion mit dem Parameter userid
als String also getNextSequence
funktionieren so:
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");
}
Die obige Funktion gibt seq
zurück count und verwendete diese Funktion in main
Methode wie :
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
}
Jetzt in counters
Die Sammlung enthält drei Dokumente, die name
enthalten als Sarah C. and Bob D.
jeweils und ein Standarddokument, das wir beim ersten Mal manuell eingefügt haben, und es erhöht seq
so { "_id" : "userid", "seq" : 2 }