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

Dự án mảng các đối tượng thành giá trị chính

Có, sử dụng $arrayToObject $map để chuyển đổi mảng hiện có sang định dạng mà nó chấp nhận:

db.collection.aggregate([
  { "$replaceRoot": {
    "newRoot": {
      "$arrayToObject": {
        "$concatArrays": [
          [{ "k": "date", "v": "$_id.date" }],  
          { "$map": {
            "input": "$aggr",
            "in": { "k": "$$this.gender", "v": "$$this.count" }
          }}
        ]
      }
    }    
  }}
])

Tất nhiên nếu điều này thực sự chỉ nằm ở "phần đuôi" của tập hợp hiện có và bạn không có ít nhất MongoDB 3.4.4 nơi toán tử được giới thiệu, thì bạn có thể chỉ cần định hình lại kết quả trong mã khách hàng:

db.collection.aggregate([
  // existing pipeline
]).map(d => 
  Object.assign(
    { date: d._id.date },
    d.aggr.reduce((acc,curr) =>
      Object.assign(acc,{ [curr.gender]: curr.count }),{}
    )
  )
)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hỗ trợ cho nhiều kiểu người dùng bằng Passport-local mongoose node.js

  2. Lỗi khi tìm nạp Tweet bằng Tweepy

  3. Mongo tìm giá trị với khóa mẹ không xác định

  4. Cách sử dụng MongoRegex (MongoDB C # Driver)

  5. Truy vấn mảng MongoDB và sắp xếp với các phần tử phù hợp nhất