MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

как да актуализирате вложен обект на mongoose документ само за предоставени ключове

Както подсказват повечето отговори, трябва да използвате точкова нотация за да актуализирате вградени документи и да отговорите на въпроса си по-горе, използвайте следния помощен метод, който прилага рекурсия за преобразуване на даден обект в неговото представяне с точкова нотация:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. OData Jaydata - искането за актуализиране на odata връща грешка 404 (SAPUI5, възел)

  2. node.js mongojs findOne обратно извикване връща грешка като нула

  3. Как да управлявате потребители и удостоверяване в MongoDB

  4. MongoDB Unclean Shutdown - Неуспешно поправяне

  5. MongoDB $group (монго игрище)