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

Nhóm lồng nhau với MongoDB

Điều gì đó như thế này nên làm điều đó;

db.example.aggregate( 
  { 
    $group: { 
      _id:   { age: "$age", gender: "$gender" }, 
      names: { $addToSet: "$name" } 
    } 
  }, 
  { 
    $group: {
      _id: { age: "$_id.age" }, 
      children: { $addToSet: { gender: "$_id.gender", names:"$names" } } 
    } 
  } 
)

... cho kết quả;

{
  "_id" : {
    "age" : 1
  },
  "children" : [
    { "gender" : "m", "names" : [ "G", "A" ] },
    { "gender" : "f", "names" : [ "J", "D" ] }
  ]
}, 
...

Nếu bạn muốn tuổi là _id như trong ví dụ của bạn, chỉ cần thay thế _id của nhóm thứ hai bởi;

_id: "$_id.age", 



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để giải quyết MongoWaitQueueFullException?

  2. cách kiểm tra xem tài liệu có được cập nhật hoặc chèn vào MongoDB hay không

  3. mongoose 'findById' trả về null với id hợp lệ

  4. Phân vùng bản ghi trong bộ sưu tập trong MongoDB

  5. Cách khắc phục lỗi UploadNotAllowed trong Flask khi không có tệp nào được tải lên?