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

MongoDB - Làm cách nào để trả lại tài liệu có dưới dạng ?

Bạn có thể đạt được điều này với khung tổng hợp bằng cách sử dụng $group để nhóm các tài liệu theo device_id , theo sau là arrayToObject để nhận một giá trị làm khóa:

truy vấn trông giống như sau:

db.collection.aggregate([{
  "$group": {
    "_id": "$device_id",
    "dt": {
      "$push": "$date"
    }
  }
}, {
  "$replaceRoot": {
    "newRoot": {
      "$arrayToObject": {
        "$concatArrays": [
          [{
            "k": "$_id",
            "v": "$dt"
          }]
        ]
      }
    }
  }
}])

kết quả:

[
  {
    "D4YK2-R2D20-KYPI9": [
      "2018-04-01T00:00:00.000Z"
    ]
  },
  {
    "ML39A-341D4-UI041": [
      "2018-03-28T00:00:00.000Z",
      "2018-03-29T00:00:00.000Z"
    ]
  }
]

bạn có thể thử nó tại đây: mongoplayground.net/p/t9AjMA0nXCn




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truy vấn khác biệt với MongoMapper

  2. Sắp xếp theo trường ảo trong mongoDB (mongoose)

  3. Cách cài đặt MongoDB

  4. MongoDb C # đã nhập Tổng hợp với Thư giãn nhóm và Dự án

  5. Mongo. Truy vấn tài liệu với một mảng có con TẤT CẢ phải khớp với một truy vấn