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

Cách đăng dữ liệu MongoDB lên mảng lồng nhau bằng cách sử dụng NODE.js và Express

Bạn có thể sử dụng Model.prototype.update trong mongoose để cập nhật tài liệu phụ timings .

Tuy nhiên có hai trường hợp -

  1. Nếu bạn muốn đẩy các mục nhập mà không cần kiểm tra các bản sao thì hãy sử dụng $push nhà điều hành
    var filter = {
        _id: mongoose.Types.ObjectId('<USER_ID>')
    };
    
    var update = {
        $push: {
            timings: {
                startTime: "",
                endTime: "",
                elapsedTime: ""
            }
        }
    };
    
    db.collection.update(filter, update);
  1. Nếu bạn chỉ muốn đẩy các mục nhập riêng biệt, hãy sử dụng $addToSet nhà điều hành
    var filter = {
        _id: mongoose.Types.ObjectId('<USER_ID>')
    };
    
    var update = {
        $addToSet: {
            timings: {
                startTime: "",
                endTime: "",
                elapsedTime: ""
            }
        }
    };
    
    db.collection.update(filter, update);

Lưu ý:Yêu cầu mongoose đầu tiên

const mongoose = require('mongoose');

Hãy sửa mã của bạn thành bên dưới, bạn cũng không thể nhận được Id chính xác của tài liệu con, nhưng bạn có thể nhận được tài liệu gốc được cập nhật -

const updatedUser = await User.findOneAndUpdate({
        _id: mongoose.Types.ObjectId(req.body._id)
    },
    {
        $addToSet: {
            timings: {
                startTime, 
                endTime, 
                elapsedTime
            }
        }
    }, {
        new: true
    }).exec();



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tổng số các di tích phụ ở Mongoose

  2. Làm thế nào để cài đặt mongodb-client phiên bản mới nhất trên Ubuntu?

  3. Mongoose Promise với bluebird và chữ viết

  4. Tài liệu trùng lặp MongoDB ngay cả sau khi thêm khóa duy nhất

  5. Độ phức tạp về thời gian của $ addToset so với $ push khi phần tử không tồn tại trong Mảng