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

Đếm các mục từ một tài liệu khác trong tổng hợp mongodb

Có nhiều cách,

  • $match loại bỏ dữ liệu không mong muốn
  • $lookup tham gia các bộ sưu tập
  • $unwind để giải cấu trúc mảng
  • $group để tạo lại mảng và $sum giúp tăng 1 khi sử dụng $cond tình trạng

Đây là tập lệnh

db.Accounts.aggregate([
  { $match: { _id: 2 } },
  {
    $lookup: {
      from: "Responses",
      localField: "_id",
      foreignField: "accountId",
      as: "responses"
    }
  },
  {
    $unwind: "$responses"
  },
  {
    $group: {
      _id: "$_id",
      name: { $first: "$name" },
      trueResponses: {
        $sum: {
          $cond: [{ $eq: [ "$responses.res", true]},1,0]
        }
      },
      falseResponses: {
        $sum: {
          $cond: [{ $eq: [ "$responses.res", false]},1,0]
        }
      }
    }
  }
])

Làm việc sân chơi Mongo




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để đẩy một mảng đối tượng vào một mảng trong mongoose với một lần gọi?

  2. Norm.MongoException:Hết thời gian chờ kết nối cố gắng lấy kết nối từ nhóm kết nối

  3. Đặt các tệp nhỏ trong ShardingTest

  4. nhiều phiên bản của Mongo DB trên cùng một máy chủ

  5. PyMongo và Flask's Jsonify chứa các dấu gạch chéo