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

Mongoose cập nhật nhiều tài liệu không cập nhật bất cứ điều gì

Sau một vài giờ cố gắng tìm ra lỗi ở đâu và tại sao nó không cập nhật cơ sở dữ liệu, tôi phát hiện ra rằng nó thực sự đã cập nhật cơ sở dữ liệu. Vấn đề là tôi đang kiểm tra bản cập nhật trong mongo shell và sau khi tôi cập nhật nó qua yêu cầu bài đăng của nodejs, nó không xuất hiện trong shell như đã cập nhật. Tuy nhiên, khi tôi console.log () các nhãn, nó đã được cập nhật. Vì vậy, tôi đã điều tra thêm vấn đề và phát hiện ra rằng vấn đề không phải là trình bao mongo mà là do việc sử dụng không chính xác bản cập nhật lệnh mongoose. Tôi đã thiếu đối số gọi lại. Sau khi thêm chức năng gọi lại, dữ liệu được cập nhật trong mongo shell ngay lập tức.

Vì vậy, thay vì làm:

Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true})

Không được quên thêm callback:

Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true}, function(err, affected) {
   if(err)
      console.log(err)
   else
      console.log(affected)
      // After successful update, redirect here to another page...

Hoặc như câu trả lời trùng lặp gợi ý nên chạy execute ():

Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true}).exec()



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js + mongoose tìm thấy nút bị đóng băng khi có hơn 100 kết quả

  2. Cách chèn nhiều tài liệu cùng lúc trong MongoDB thông qua Java

  3. Làm cách nào để biết tài liệu có thuộc tính hết hạn đã bị xóa?

  4. Sử dụng trình điều khiển C # mongo, làm thế nào để tuần tự hóa một mảng đối tượng tùy chỉnh để lưu trữ nó?

  5. MongoDB phân biệt giữa undefined và null