sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose:Hur uppdaterar man ett befintligt element i array?

Tja, om du inte behöver returnera det uppdaterade dokumentet, försök det här - detta kommer bara att returnera ett skrivresultat, med detta kan saker uppnås i ett DB-anrop :

const creatStock = async (symbol, webApiData) => {
    try {
        // reversed array
        const webApiDataReversed = webApiData.reverse();
        const query = { symbol };

        await Stock.bulkWrite([
            {
                updateOne:
                {
                    "filter": query,
                    "update": { $pop: { data: 1 } }
                }
            }, {
                updateOne:
                {
                    "filter": query,
                    "update": {
                        $addToSet: {
                            data: webApiDataReversed
                        }
                    }
                }
            }
        ])
    } catch (ex) {
        console.log(`creatStock error: ${ex}`.red);
    }
};

Ref : mongoDB bulkWrite



  1. Misslyckad global initiering:BadValue logpath kräver en absolut filsökväg med Windows-tjänster

  2. Få $elemMatch (projektion) att returnera alla objekt som matchar kriterierna

  3. Iterera över hela Mongo-databasen

  4. Hur hanterar man pagineringsfrågor korrekt med mongodb och php?