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

không thể cập nhật tài liệu qua 'findById' và save () với lời hứa

Sẽ xem xét chia nhỏ hoạt động thành các phần có thể quản lý được. Trong trường hợp này, bạn muốn cập nhật showTakenSeats trường với dữ liệu vị trí vé từ đơn đặt hàng mới.

Đầu tiên, sử dụng async await với tuyến đường cao tốc của bạn, bạn cần lưu đơn đặt hàng và lấy tài liệu đơn đặt hàng đã tạo. Tạo tài liệu với ghế mới và sau đó cập nhật tài liệu chương trình bằng cách sử dụng findByIdAndUpdate phương pháp.

Ví dụ sau mô tả những điều trên:

const express = require('express');
const router = express.Router();

const Order = require('../models/order.js');
const Show = require('../models/show.js');

router.post('/', async (req, res, next) => {
    try {
        /* create a new Order */
        const order = new Order(req.body);
        const newOrder = await order.save();

        /* create a document to use in the update with the following data structure:
            {
                'showTakenSeats.6-0': 5b53735ef7ce3d2cd4bbfee7,
                'showTakenSeats.6-1': 5b53735ef7ce3d2cd4bbfee7,
                'showTakenSeats.6-2': 5b53735ef7ce3d2cd4bbfee7 
            }

            Use the native reduce method on the array to create this 
        */
        const updatedSeats = newOrder.ticketPositions.reduce((acc, position) => {
            acc[`showTakenSeats.${position.join('-')}`] = newOrder._id;
            return acc;
        }, {});

        /* update the show document's embedded showTakenSeats 
           with the new properties from above 
        */
        const updateShow = await Show.findByIdAndUpdate(req.body._ShowId,
            { '$set': updatedSeats },
            { 'new': true }
        );

        res.json(updateShow);

    } catch (e) {
        /* this will eventually be handled by your error handling middleware */
        next(e);
    }
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 3 cách để trả lại giá trị khác biệt trong MongoDB

  2. Làm cách nào để kích hoạt cấu hình trong node-mongodb-native?

  3. Xử lý việc gửi hai tham số trong một cuộc gọi API trong ứng dụng Angular

  4. Tần số nhịp tim được đặt bản sao hoặc khoảng thời gian chờ có thể định cấu hình được không?

  5. C # MongoDB - Làm cách nào để thêm và xóa mục cho nhiều phần tử mảng lồng nhau?