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

Cara memformat data dalam Model sebelum menyimpan di Mongoose (ExpressJS)

Sementara saya tidak yakin tentang arti req.body.starttime , saya cukup yakin Anda sedang mencari objek Skema pre() fungsi yang merupakan bagian dari Mongoose Middleware dan memungkinkan definisi fungsi panggilan balik dijalankan sebelum data disimpan. Mungkin sesuatu seperti ini melakukan pekerjaan yang diinginkan:

var RunSchema = new Schema({
  [...]
  starttime: {
    type: Date,
    default: Date.now
  }
});

RunSchema.pre('save', function(next) {
  this.starttime = new Date();
  next();
});

Perhatikan bahwa fungsi panggilan balik untuk save event dipanggil setiap kali sebelum record dibuat atau diperbarui. Jadi, ini misalnya cara menyetel stempel waktu "diubah" secara eksplisit.

EDIT:

Berkat komentar Anda, saya sekarang mendapatkan pemahaman yang lebih baik tentang apa yang ingin Anda capai. Jika Anda ingin mengubah data sebelum ditetapkan dan disimpan ke catatan, Anda dapat dengan mudah menggunakan set properti Skema:

// defining set within the schema
var RunSchema = new Schema({
  [...]
  starttime: {
    type: Date,
    default: Date.now,
    set: util.getDate
  }
});

Dengan asumsi bahwa objek util berada dalam ruang lingkup (diperlukan atau apa pun) implementasi Anda saat ini sesuai dengan tanda tangan untuk properti set :

function set(val, schemaType)

Parameter opsional schemaType memungkinkan Anda untuk memeriksa properti definisi bidang skema Anda jika proses transformasi bergantung padanya dengan cara apa pun.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Salin/Klon Database di MongoDB

  2. Alur kerja data besar menggunakan panda

  3. Menutupi PII di MongoDB, Cassandra, dan Elasticsearch dengan DarkShield:…

  4. MongoCollection versus DBCollection java

  5. Bagaimana cara menggunakan transaksi MongoDB menggunakan Mongoose?