sql >> Database teknologi >  >> NoSQL >> MongoDB

hvordan man opdaterer indlejret objekt af mongoose-dokument for kun de angivne nøgler

Som de fleste svar antydede, skal du bruge priknotation for at opdatere indlejrede dokumenter og besvare dit spørgsmål ovenfor, brug følgende hjælpemetode, som anvender rekursion til at konvertere et givent objekt til dets punktnotationsrepræsentation:

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. Sådan laver du mongo-gruppe på Meteor-serversiden

  2. Effektiv POJO-kortlægning til/fra Java Mongo DBObject ved hjælp af Jackson

  3. Skal jeg bruge muligheden allowDiskUse i et produktmiljø?

  4. BsonSerializationException opstår, hvis elementnavnet slutter med et punktum