Anda harus menggunakan perintah findAndModify MongoDB. Dengannya, Anda dapat memilih dan menambah bidang secara atom.
db.seq.findAndModify({
query: {"_id": "users"},
update: {$inc: {"seq":1}},
new: true
});
Ini akan menambah penghitung untuk users
koleksi, yang kemudian dapat Anda tambahkan ke dokumen sebelum penyisipan. Karena bersifat atomik, Anda tidak perlu khawatir tentang kondisi balapan yang mengakibatkan ID bentrok.
Ini tidak semulus auto_increment
MySQL flag, tetapi Anda juga biasanya memiliki opsi untuk menentukan pabrik ID Anda sendiri di driver Mongo Anda, sehingga Anda dapat mengimplementasikan pabrik yang menggunakan findAndModify untuk menambah dan mengembalikan ID secara transparan, menghasilkan pengalaman yang lebih mirip MySQL.
Kelemahan dari pendekatan ini adalah karena setiap sisipan bergantung pada kunci tulis pada koleksi urutan Anda, jika Anda melakukan banyak penulisan, Anda bisa berakhir dengan kemacetan pada itu dengan cukup cepat. Jika Anda hanya ingin menjamin bahwa dokumen dalam koleksi diurutkan dalam urutan penyisipan, lihat Koleksi Capped.