MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana Anda menerapkan ID utama yang bertambah secara otomatis di MongoDB?

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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Gagal menghubungkan Mongoose ke Atlas

  2. Dorong nilai baru ke array dalam mongodb - mongodb/php

  3. MongoDB -- Menyetel pernyataan bersyarat di .find()

  4. Kesalahan tornado:[Errno 24] Terlalu banyak kesalahan membuka file

  5. MongoDB $konversi