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

Node.js - Mongoose - Perbarui array bersarang dengan semua nilai di req.body

Anda harus menggunakan $ operator posisi di $set . Untuk menetapkan properti tersebut secara dinamis, berdasarkan apa yang ada di req.body . Anda , Anda perlu membangun $set . Anda secara terprogram.

Jika Anda ingin memperbarui nama, lakukan hal berikut:

Location.update(
  { 'competitors._id': req.params.competitorId },
  { $set:  { 'competitors.$.name': req.body.name }},
  (err, result) => {
    if (err) {
      res.status(500)
      .json({ error: 'Unable to update competitor.', });
    } else {
      res.status(200)
      .json(result);
    }
 }
);

Salah satu cara Anda mungkin secara terprogram membangun $set menggunakan req.body adalah dengan melakukan hal berikut:

let updateObj = {$set: {}};
for(var param in req.body) {
  updateObj.$set['competitors.$.'+param] = req.body[param];
 }

Lihat ini jawab untuk lebih jelasnya.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo membuka terlalu banyak koneksi

  2. Kesalahan Fatal - kelas 'Mongo' tidak ditemukan

  3. Beberapa Basis Data di MongoDB untuk SaaS

  4. Tidak diizinkan untuk kueri di admin.system.namespaces di mongodb

  5. mongodb geoNear vs near