MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak przekonwertować strukturę obiektu JSON na notację kropkową?

Powinno to być wystarczająco elastyczne dla większości potrzeb:

Funkcja
function dotNotate(obj,target,prefix) {
  target = target || {},
  prefix = prefix || "";

  Object.keys(obj).forEach(function(key) {
    if ( typeof(obj[key]) === "object" && obj[key] !== null ) {
      dotNotate(obj[key],target,prefix + key + ".");
    } else {
      return target[prefix + key] = obj[key];
    }
  });

  return target;
}

Uruchom na swoich excludesFields zmienna jak tak:

dotNotate(excludeFields);

Zwraca aktualną strukturę:

{ "Contact.Address" : 0, "Contact.Phone" : 0 }

Możesz więc zrobić nawet inline:

things.findOne({}, {fields: dotNotate(excludeFields) })

Lub podaj jako projekcję:

var projection = { "fields": {} };
dotNotate(excludeFields,projection.fields);
things.findOne({}, projection);

Działa dobrze na wszystkich głębokościach, a nawet z tablicami w istotny sposób, chyba że potrzebujesz operatorów takich jak $push .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zwróć tylko wartość tablicy w projekcji mongo

  2. Czy są jakieś dobre aplikacje do zarządzania bazami danych dla komputerów Mac dla MongoDB? Podobny do Sequel Pro?

  3. Rozwiązanie do zbiorczego znajdowania i modyfikowania w MongoDB

  4. Jak pobrać tylko wybrane identyfikatory mongo za pomocą wiosennej metody mongorepository?

  5. Co oznacza zbyt wiele opcji pozycyjnych podczas eksportu mongo?