MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm thế nào để chuyển đổi cấu trúc đối tượng JSON sang ký hiệu dấu chấm?

Điều này phải đủ linh hoạt cho hầu hết các nhu cầu:

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

Chạy trên excludesFields của bạn biến như vậy:

dotNotate(excludeFields);

Nó trả về cấu trúc hiện tại:

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

Vì vậy, bạn thậm chí có thể làm, nội dòng:

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

Hoặc cung cấp dưới dạng một phép chiếu:

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

Hoạt động tốt ở tất cả các độ sâu và ngay cả với các mảng theo cách cần thiết, trừ khi bạn cần các toán tử như $push .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Shards và tải tổng hợp không cân bằng

  2. Cách tạo dịch vụ CUPS cho mongoDB?

  3. Chỉ định nhiều tiêu chí cho các phần tử mảng

  4. Meteor:làm cách nào để trả về dữ liệu từ các trường trong một đối tượng cụ thể?

  5. Nơi viết và lưu trữ các hàm bản đồ / giảm mongoDB trong dự án java