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

Làm cách nào để nhận giá trị đếm bằng cách sử dụng $ lookup trong mongodb bằng golang?

Vì vậy, tổng hợp của bạn thực sự trả về tất cả comment tài liệu trong resultField trường, ẩn chứa số lượng kết quả, đó là một phần trong đó bạn có thể kiểm tra độ dài trong Go bằng cách sử dụng nội trang len() chức năng.

Vì bạn chỉ cần độ dài (số lượng comment tài liệu), đó là lý do tại sao bạn chỉ muốn truy xuất kích thước của mảng này. Vì mục đích đó, bạn có thể sử dụng $addFields giai đoạn thay thế resultField mảng với một số là độ dài của mảng này.

pipe := c.Pipe([]bson.M{
    {
        "$lookup": bson.M{
            "from":         "comment",
            "localField":   "_id",
            "foreignField": "post_id",
            "as":           "resultField",
        },
    },
    {
        "$addFields": bson.M{
            "resultField": bson.M{"$size": "$resultField"},
        },
    },
})

Lưu ý rằng $addFields giai đoạn tương đương với một $project giai đoạn xác định rõ ràng tất cả các trường hiện có trong tài liệu đầu vào và thêm các trường mới. Chỉ khả dụng kể từ phiên bản MongoDB 3.4.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Có thể có điều kiện trong dân cư cầy mangut không

  2. Làm thế nào để xóa tài liệu bằng cách truy vấn hiệu quả trong mongo?

  3. Cách ngăn xây dựng chỉ mục chạy trốn trong MongoDB

  4. Tại sao phần mềm trung gian nodejs-mongodb có cú pháp khác với trình bao mongo?

  5. mongodb không thể khởi động trên windows?