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

mongodb thêm bộ đếm vào mỗi tài liệu được truy xuất

Mặc dù câu trả lời được đề cập bởi @prasad_ có vẻ hiệu quả, nhưng $ unwind đã có tùy chọn Mongodb 3.2 includeArrayIndex giúp bạn đạt được điều đó dễ dàng hơn:

db.collection.aggregate([
  {
    $group: {
      _id: null,
      data: {
        $push: "$$ROOT"
      }
    }
  },
  {
    $unwind: {
      path: "$data",
      includeArrayIndex: "counter",

    }
  },
  {
    $replaceRoot: {
      newRoot: {
        $mergeObjects: [
          "$data",
          {
            counter: {
              $add: [
                "$counter",
                1
              ]
            }
          }
        ]
      }
    }
  }
])

Giai đoạn cuối ở đây chỉ để định hình lại các tài liệu của bạn và thêm 1 vào mỗi bộ đếm, vì nó dựa trên 0 (dựa trên chỉ mục mảng)

Bạn có thể kiểm tra nó tại đây.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $ dateToString

  2. Trường hợp cho chỉ số băm MongoDB

  3. MongoDB $ và Nhà điều hành đường ống tổng hợp

  4. Chỉ mục một phần trong mongodb / mongoose

  5. Có điều kiện $ sum trong MongoDB