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

temukan id dari subdokumen terbaru yang dimasukkan ke dalam luwak

Saya telah mencari jawaban ini juga, dan saya tidak yakin bahwa saya suka mengakses dokumen terakhir dari array. Namun, saya punya solusi alternatif. Metode m['b'].push akan mengembalikan bilangan bulat, 1 atau 0 - Saya berasumsi itu didasarkan pada keberhasilan Push (dalam hal validasi). Namun, untuk mendapatkan akses ke subdokumen, dan khususnya _id subdokumen - Anda harus menggunakan create metode pertama, lalu push .

Kodenya adalah sebagai berikut:

var subdoc = m['b'].create({ ba: 234, bb: "World" });
m['b'].push(subdoc);
console.log(subdoc._id);
m.save(function(err, model) { console.log(arguments); });

Apa yang terjadi adalah ketika Anda meneruskan objek ke metode Push atau create, skema cast segera muncul (termasuk hal-hal seperti validasi dan tipe casting) - ini berarti bahwa inilah saatnya ObjectId dibuat; tidak ketika model disimpan kembali ke Mongo. Faktanya, mongo tidak secara otomatis menetapkan nilai _id ke subdokumen, ini adalah fitur luwak. Pembuatan luwak didokumentasikan di sini:buat dokumen

Oleh karena itu, Anda juga harus mencatat, bahwa meskipun Anda memiliki subdocument _id - itu belum ada di Mongo sampai Anda menyimpannya, jadi berhati-hatilah dengan tindakan DOCRef apa pun yang mungkin Anda ambil.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Beberapa operasi grup menggunakan kerangka agregasi Mongo

  2. Cara mengonversi set replika MongoDB ke server yang berdiri sendiri

  3. Halaman Meteor Menyegarkan dengan Klik Tombol

  4. MongoDB $rtrim

  5. Bagaimana cara menyalin database dari satu server MongoDB ke yang lain?