MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

'findById' के माध्यम से किसी दस्तावेज़ को अपडेट नहीं कर सकते हैं और वादे के साथ सेव () कर सकते हैं

ऑपरेशन को प्रबंधनीय विखंडू में तोड़ने पर विचार करेंगे। इस मामले में आप showTakenSeats . को अपडेट करना चाहेंगे टिकट के साथ फ़ील्ड नए आदेश से डेटा की स्थिति।

सबसे पहले, अपने एक्सप्रेस रूट के साथ async वेट का उपयोग करके आपको ऑर्डर को सेव करने और बनाए गए ऑर्डर दस्तावेज़ को प्राप्त करने की आवश्यकता होती है। नई सीटों के साथ एक दस्तावेज़ बनाएं और फिर findByIdAndUpdate विधि।

निम्नलिखित उदाहरण उपरोक्त का वर्णन करता है:

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. स्ट्रिंग को मोंगोडब में आज तक कनवर्ट करना

  2. MongoDB में योजना और प्रबंधन योजनाएँ (भले ही यह बिना योजना के हो)

  3. मोंगोडब में पत्रिकाओं के आकार को कैसे नियंत्रित करें?

  4. मोंगो शैल में क्वेरी सिंटैक्स त्रुटि देता है:अनुपलब्ध:संपत्ति के बाद

  5. नमूना कोड के साथ mongoxx c++ ड्राइवर का परीक्षण करना