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

Mongoose:findOneAndUpdate không trả về tài liệu cập nhật

Tại sao điều này xảy ra?

Mặc định là trả lại bản gốc, không thay đổi tài liệu. Nếu bạn muốn trả lại tài liệu mới, cập nhật, bạn phải chuyển một đối số bổ sung:một đối tượng có new thuộc tính được đặt thành true .

Từ tài liệu mongoose:

Truy vấn # findOneAndUpdate

Model.findOneAndUpdate(conditions, update, options, (error, doc) => {
  // error: any errors that occurred
  // doc: the document before updates are applied if `new: false`, or after updates if `new = true`
});

Các tùy chọn có sẵn

  • new :bool - nếu đúng , trả lại đã sửa đổi tài liệu hơn là bản gốc. mặc định thành false (đã thay đổi trong 4.0)

Giải pháp

Chuyển {new: true} nếu bạn muốn kết quả được cập nhật trong doc biến:

//                                                         V--- THIS WAS ADDED
Cat.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}}, {new: true}, (err, doc) => {
    if (err) {
        console.log("Something wrong when updating data!");
    }

    console.log(doc);
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cập nhật trường MongoDB bằng cách sử dụng giá trị của trường khác

  2. MongoDB C #:ID Serialization mẫu tốt nhất

  3. mongodb - tạo doc nếu không tồn tại, nếu không sẽ đẩy lên mảng

  4. MongoDB $ mili giây

  5. Xóa khoảng trắng (đầu và cuối) khỏi giá trị chuỗi