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

Bagaimana menemukan waktu operasi pembaruan/masukkan/hapus terakhir pada koleksi mongodb tanpa bidang objectid

Singkatnya:MongoDB memiliki fleksibel skema. Cukup tambahkan bidang tanggal. Karena entri lama tidak memilikinya, entri tersebut tidak dapat menjadi entri terakhir.

Sebut saja bidang itu mtime .

Jadi setelah menambahkan bidang tanggal ke definisi skema Anda, kami membuat indeks dalam urutan menurun pada bidang baru:

db.yourCollction.createIndex({mtime:-1})

Menemukan mtime terakhir untuk koleksi sekarang mudah:

db.yourCollection.find({"mtime":{"$exists":true}}).sort({"mtime":-1}).limit(1)

Lakukan ini untuk setiap koleksi. Ketika kueri di atas tidak mengembalikan nilai dalam jangka waktu yang Anda tetapkan untuk membersihkan koleksi, cukup lepaskan, karena belum diubah sejak Anda memperkenalkan bidang mtime.

Setelah koleksi Anda dibersihkan, Anda dapat menghapus mtime bidang dari definisi skema Anda. Untuk menghapusnya dari dokumen, Anda dapat menjalankan kueri sederhana:

db.yourCollection.update(
  { "mtime":{ $exists:true} },
  { "$unset":{ "mtime":""} },
  { multi: true}
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apakah saya harus menjadi admin untuk membuat pengguna baru di MongoDB?

  2. Penanganan yang benar dari tindakan async Mongo di Node Promise

  3. Hapus kunci dari dokumen MongoDB menggunakan Mongoose

  4. Django+MongoDB vs Node.js+MongoDB

  5. Apa praktik terbaik untuk menghubungkan/memutuskan koneksi ke database?