sql >> Databasteknik >  >> NoSQL >> MongoDB

Uppdatera delmängd av fält med Mongoose

Du kan skapa en hjälpmetod så här:

const filterObj = (obj, ...allowedFields) => {
  const newObj = {};
  Object.keys(obj).forEach(el => {
    if (allowedFields.includes(el) && (typeof obj[el] === "boolean" || obj[el]))
      newObj[el] = obj[el];
  });
  return newObj;
};

Och använd det så här:

  let filteredBody = filterObj(req.body, "email", "firstname", "lastname");
  filteredBody.updatedAt = Date.now();

  // Update the user object in the db
  const userUpdated = await User.findByIdAndUpdate(userId, filteredBody, {
    new: true,
    runValidators: true
  });



  1. Sammansatta index för OR+Sorteringsfråga i mongodb

  2. Redis Sentinels med TLS

  3. MongoDB-replikuppsättning i Azure, vart pekar jag brandväggen?

  4. MongoDB i PHP som använder aggregat för att gruppera efter _id fungerar inte null