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

Chuyển đổi mảng mongo thành đối tượng có cặp khóa-giá trị

Không chắc chắn những gì bạn muốn làm với kết quả cuối cùng vì các khóa và giá trị giống nhau. Tuy nhiên, bạn có thể sử dụng khung tổng hợp nơi bạn có thể chuẩn hóa mảng giá trị nhúng bằng cách sử dụng $unwind toán tử làm phẳng nó, tức là nó tạo ra một bản sao của mỗi tài liệu trên mỗi mục nhập mảng.

Sau khi làm phẳng mảng giá trị, bạn có thể áp dụng $group toán tử tích lũy trên các giá trị để tổng hợp chúng. Đường dẫn cuối cùng của $project toán tử sẽ định hình các trường từ nhóm trước đó thành định dạng mong muốn.

Làm theo ví dụ sau để có khái niệm:

templateAttributes.aggregate([
    { "$match": { "platform": "V1" } },
    { "$unwind": "$available.Community.attributes.type.values" },
    {
        "$group": {
            "_id": "$available.Community.attributes.type.values",
            "value": { "$first": "$available.Community.attributes.type.values" }
        }
    },
    {
        "$project": {
            "_id": 0,
            "label": "$_id",
            "value": 1
        }
    }
])

Vì bạn đang sử dụng Sao băng, hãy thêm sao băng meteorhacks:aggregate sẽ thêm hỗ trợ tổng hợp thích hợp cho Meteor để bạn có thể chạy đường dẫn tổng hợp ở trên trên bộ sưu tập của mình.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chỉ nhận một trường được chỉ định trong MongoDB với C #

  2. Người mới bắt đầu MongoDB - chuẩn hóa hay không chuẩn hóa?

  3. Mảng trống ngăn tài liệu xuất hiện trong truy vấn

  4. Làm thế nào để điền một đến nhiều mối quan hệ trong mongoose với việc cấp lại nguồn gốc cho cha mẹ?

  5. Mongoose đang lưu tài liệu ngay cả khi tôi kiểm tra xem tài liệu đã tồn tại chưa