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

Mongoose upsert không tạo thuộc tính lược đồ mặc định

Điều đang xảy ra là không có giá trị xác thực, phần mềm trung gian hoặc mặc định nào của Mongoose được sử dụng khi gọi bất kỳ họ phương thức "cập nhật" nào, như findByIdAndUpdate . Chúng chỉ được gọi bằng các lệnh gọi đến save hoặc create .

Lý do cho điều này là các lệnh gọi "cập nhật" là chuyển tiếp hiệu quả đến trình điều khiển gốc, với Mongoose chỉ cung cấp kiểu truyền của các trường dựa trên định nghĩa lược đồ.

Bản cập nhật Mongoose 4.0

Mongoose hiện hỗ trợ đặt giá trị mặc định khi tài liệu mới được tạo trong quá trình cập nhật update , findOneAndUpdate hoặc findByIdAndUpdate nâng cao. Đặt setDefaultsOnInsert tùy chọn thành true để kích hoạt điều này. Điều này sử dụng $setOnInsert toán tử để tạo các giá trị mặc định trên insert.

var queryOptions = {
    upsert: true,
    setDefaultsOnInsert: true
};
Company.findByIdAndUpdate(id, company, queryOptions).exec( ...


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách thay đổi khóa phân đoạn

  2. Thứ tự tìm kiếm sản phẩm chuỗi con MongoDB theo kết quả phù hợp cao nhất

  3. Tránh giới hạn tổng hợp 16MB

  4. Cách tổng hợp MongoDB trong Node.js

  5. Có thể cải thiện tốc độ Mongoexport không?