sql >> Databasteknik >  >> NoSQL >> MongoDB

hur man uppdaterar kapslade objekt av mongoose-dokument för endast tillhandahållna nycklar

Som de flesta svar antydde måste du använda pricknotation för att uppdatera inbäddade dokument och för att svara på din fråga ovan, använd följande hjälpmetod som tillämpar rekursion för att konvertera ett givet objekt till dess punktnotationsrepresentation:

function convertToDotNotation(obj, newObj={}, prefix="") {

  for(let key in obj) {
      if (typeof obj[key] === "object") {
          convertToDotNotation(obj[key], newObj, prefix + key + ".");
      } else {
          newObj[prefix + key] = obj[key];
      }
  }

  return newObj;
}


let params = {
   address: {
      city: {
         location: {
            street: "new street"
         }
      }  
   }
};

const dotNotated = convertToDotNotation(params);
console.log(JSON.stringify(dotNotated, null, 4));


  1. MongoDB:klass java.lang.Double kan inte castas till klass java.lang.Long

  2. ta bort ett inbäddat dokument i mongoid

  3. Hur kan jag använda regex i mongodb över mongolab?

  4. MongoDB och Google Cloud Functions VPC Peering?