sql >> Databáze >  >> NoSQL >> MongoDB

jak aktualizovat vnořený objekt dokumentu mongoose pouze pro poskytnuté klíče

Jak uvádí většina odpovědí, musíte použít tečkový zápis Chcete-li aktualizovat vložené dokumenty a odpovědět na výše uvedenou otázku, použijte následující pomocnou metodu, která použije rekurzi k převodu daného objektu na jeho tečkovou reprezentaci:

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. Výhody a nevýhody MongoDB?

  2. Musím výslovně ukončit připojení?

  3. jak nakonfigurovat různé ttl pro každou mezipaměť redis při použití @cacheable ve springboot2.0

  4. MongoDB Symfony2 vrací loggablecursor místo mých entit