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

MongoDB:$ push một biểu thức tính toán trong một nhóm $

Bạn có thể sử dụng $cond ( http://docs.mongodb.org/manual/reference /aggregation/cond/#exp._S_cond ) cho điều này:

db.c.aggregate( [
    { $project: {
        k: '$k',
        color: {
            $cond: [ 
                { $eq: [ '$v', true ] }, 
                'red', 
                'green'
            ]
        }
    } },
    { $group: {
        _id: '$k',
        vals: { '$push': '$color' }
    } }
] )

Chỉnh sửa

Như một chỉnh sửa khác đã đề cập, nó thực sự cần $eq làm việc kể từ {'$v':true} không được giải thích như một biểu thức chính xác.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sử dụng trình điều khiển C # mongo, làm thế nào để tuần tự hóa một mảng đối tượng tùy chỉnh để lưu trữ nó?

  2. Mongodb tổng hợp, Làm thế nào để đếm tài liệu theo tiêu chí khoảng thời gian?

  3. Xóa các bản ghi trùng lặp khỏi mongodb 4.0

  4. Bạn có thể có quyền cấp bộ sưu tập trong MongoDB không?

  5. Truy vấn có nguồn gốc không hoạt động với DBRef