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

không thể cập nhật thuộc tính createAt trong mongoose?

Vì một số tài liệu được tạo khi timestamps tùy chọn được đặt thành false (đây là giá trị mặc định) mongoose sẽ không biết các dấu thời gian đó. Do đó, item._id.getTimestamp() sẽ trả về không xác định.

Những gì bạn có thể làm là tạo lại các mục nhập mà createdAt không tồn tại. Sau đó, Mongoose sẽ tự động tạo các dấu thời gian và đặt chúng thành dấu thời gian hiện tại, nếu tùy chọn được bật:

    const profilesWithoutCreated = await Profile.find({createdAt: {$exists: false}}).exec();
    const timeStampExtract = [];
    let newProfile;
    for (const profile of profiles) {
       newProfile = new Profile(profile);
       newProfile.createdAt = profile._id.getTimestamp();
       const savedProfile = await newProfile.save();
       timeStampExtract.push(savedProfile._id.getTimestamp());
    }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb và Express

  2. Có một công cụ tương đương như trình biên dịch sql cho mongodb không?

  3. updateMany dựa trên trường khác trong mongodb

  4. MongoDB xử lý các truy vấn find (). Sort () như thế nào đối với các chỉ mục đơn và kết hợp?

  5. Tìm hai tài liệu trong MongoDB có chung giá trị khóa