MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Node.js - Mongoose - Cập nhật mảng lồng nhau với tất cả các giá trị trong req.body

Bạn sẽ cần sử dụng $ toán tử vị trí trong $set của bạn . Để chỉ định động các thuộc tính đó, dựa trên những gì có trong req.body của bạn , bạn sẽ cần thiết lập $set của mình theo chương trình.

Nếu bạn muốn cập nhật tên, bạn làm như sau:

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);
    }
 }
);

Một cách bạn có thể lập trình để tạo $set sử dụng req.body bằng cách làm như sau:

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

Xem điều này câu trả lời để biết thêm chi tiết.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tối ưu hóa - tìm trên tất cả các trường trong lược đồ Mongoose MongoDB

  2. Sự cố khi cài đặt Mongodb trên Ubuntu 20.04

  3. tìm kiếm và sắp xếp toàn văn php mongodb

  4. Redis hoặc Mongo để xác định xem một số có nằm trong phạm vi không?

  5. Mongoid Group By hoặc MongoDb group by in rails