एक ऑटो-इन्क्रीमेंटिंग सीक्वेंस फ़ील्ड बनाएँ का उपयोग करके सबसे पहले आपको mongoDB शेल का उपयोग करके संग्रह बनाना चाहिए और संग्रह इस प्रकार होना चाहिए:
db.counters.insert(
{
_id: "userid",
seq: 0
})
तो आपको counters
मिलता है संग्रह जिसमें _id,seq
. जैसे फ़ील्ड शामिल हैं , अब getNextSequence
create बनाएं जावा में फ़ंक्शन और इस फ़ंक्शन में पैरामीटर userid
. है स्ट्रिंग के रूप में getNextSequence
इस तरह कार्य करें:
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");
}
उपरोक्त फ़ंक्शन seq
लौटाता है इस फ़ंक्शन को main
. में गिनें और उपयोग करें इस तरह की विधि:
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
}
अब counters
. में संग्रह में तीन दस्तावेज़ होते हैं जिनमें name
. होता है Sarah C. and Bob D.
. के रूप में क्रमशः और एक डिफ़ॉल्ट दस्तावेज़ जिसे हमने पहली बार मैन्युअल रूप से डाला और यह seq
increment को बढ़ाता है इस तरह { "_id" : "userid", "seq" : 2 }