sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man postar MongoDB-data till den kapslade arrayen med NODE.js och Express

Du kan använda Model.prototype.update i mongoose för att uppdatera underdokumentet timings .

Det finns dock två scenarier -

  1. Om du vill pusha poster utan att behöva kontrollera dubbletter, använd $push operatör
    var filter = {
        _id: mongoose.Types.ObjectId('<USER_ID>')
    };
    
    var update = {
        $push: {
            timings: {
                startTime: "",
                endTime: "",
                elapsedTime: ""
            }
        }
    };
    
    db.collection.update(filter, update);
  1. Om du bara vill skicka distinkta poster använder du $addToSet operatör
    var filter = {
        _id: mongoose.Types.ObjectId('<USER_ID>')
    };
    
    var update = {
        $addToSet: {
            timings: {
                startTime: "",
                endTime: "",
                elapsedTime: ""
            }
        }
    };
    
    db.collection.update(filter, update);

Obs:Kräv mongoose först

const mongoose = require('mongoose');

Rätta din kod till nedan, du kan inte heller få det exakta underdokumentets ID, men du kan få det uppdaterade rotdokumentet -

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



  1. hur man tar bort ett specifikt objekt från arrayobjekt i MongoDB

  2. Kör flera instanser av Redis på Centos

  3. Redis under klassisk ASP(VBScript)

  4. Hur migrerar man data från MongoDB till SQL-Server?