MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara mengubah struktur objek JSON menjadi notasi titik?

Ini harus cukup fleksibel untuk sebagian besar kebutuhan:

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;
}

Jalankan di excludesFields . Anda variabel seperti ini:

dotNotate(excludeFields);

Ini mengembalikan struktur saat ini:

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

Jadi Anda bahkan dapat melakukannya, sebaris:

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

Atau berikan sebagai proyeksi:

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

Bekerja dengan baik di semua kedalaman dan bahkan dengan array secara esensial, kecuali jika Anda membutuhkan operator seperti $push .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Grup MongoDB berdasarkan bidang, hitung dan urutkan desc

  2. Angkat toko BigDecimal di MongoDB

  3. Pencarian peka huruf besar/kecil di Mongo

  4. ValueError:<Terlalu banyak nilai untuk dibongkar>

  5. Bagaimana cara mendapatkan dokumen dengan nilai maksimal untuk bidang dengan pengurangan peta di pymongo?