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

MongoDb Tồn tại trên mỗi cột

Tôi có một tổng hợp bằng cách sử dụng $facet; điều này cho phép thực hiện các truy vấn song song cho mỗi lần chuyển tài liệu. Vì vậy, chúng tôi truy vấn và đếm CostStatus dưới dạng hai khía cạnh của cùng một truy vấn.

db.test.aggregate( [
  {
      $match: { fld1: "Data" }
  },
  { 
      $facet: {
          cost: [
              { $match: { cost: { $exists: true } } },
              { $count: "count" }
          ],
          status: [
              { $match: { status: { $exists: true } } },
              { $count: "count" }
          ],
      }
  },
  { 
      $project: { 
          costCount: { $arrayElemAt: [ "$cost.count" , 0 ] },
          statusCount: { $arrayElemAt: [ "$status.count" , 0 ] }
      } 
  }
] )

Tôi nhận được kết quả là { "costCount" : 4, "statusCount" : 3 } , sử dụng các tài liệu sau:

{ _id: 1, fld1: "Data", cost: 12, status: "Y" },
{ _id: 2, fld1: "Data", status: "N" },
{ _id: 3, fld1: "Data" },
{ _id: 4, fld1: "Data", cost: 90 },
{ _id: 5, fld1: "Data", cost: 44 },
{ _id: 6, fld1: "Data", cost: 235, status: "N" },
{ _id: 9, fld1: "Stuff", cost: 0, status: "Y" }


LƯU Ý :Đây là một truy vấn tương tự sử dụng các khía cạnh: MongoDB Sắp xếp tùy chỉnh trên hai trường .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. chỉ mục mongoose đã tồn tại với các tùy chọn khác nhau

  2. Làm cách nào để truy vấn các giá trị riêng biệt trong Mongoose?

  3. Truy vấn một mảng bên trong tài liệu mongoose

  4. Cách định dạng dữ liệu trong Model trước khi lưu trong Mongoose (ExpressJS)

  5. Giải quyết mảng MongoDB DBRef bằng cách sử dụng Mongo Native Query và làm việc trên các tài liệu đã giải quyết