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

Chuyển đổi kiểu dữ liệu trong MongoDB

Bạn có thể thực hiện việc này với $concat nhưng trước tiên, bạn cần chuyển đổi thành chuỗi qua $substr , cũng xử lý trường hợp hai chữ số:

db.Document.aggregate([ 
    { "$group": { 
        "_id":{ 
            "$concat": [
                 { "$substr": [ { "$year": "$CreationDate" }, 0, 4 ] },
                 "-",
                 { "$cond": [
                     { "$gt": [ { "$month": "$CreationDate" }, 9 ] },
                     { "$substr": [ { "$month": "$CreationDate" }, 0, 2 ] },
                     { "$concat": [
                         "0",
                         { "$substr": [ { "$month": "$CreationDate" }, 0, 1 ] },
                     ]},
                 ]},
                 "-",
                 { "$cond": [
                     { "$gt": [ { "$dayOfMonth": "$CreationDate" }, 9 ] },
                     { "$substr": [ { "$dayOfMonth": "$CreationDate" }, 0, 2 ] },
                     { "$concat": [
                         "0",
                         { "$substr": [ { "$dayOfMonth": "$CreationDate" }, 0, 1 ] },
                     ]}
                 ]}
             ]
         },
         { "cnt": { "$sum": 1 } }
    }}
    { "$sort":{ "cnt" :-1 }}
]);

Có thể tốt hơn là chỉ sử dụng toán học ngày thay thế, điều này trả về giá trị dấu thời gian của kỷ nguyên, nhưng rất dễ dàng để làm việc thành một đối tượng ngày tháng trong quá trình xử lý bài đăng:

db.Document.aggregate([
    { "$group": {
        "_id": {
            "$subtract": [
                { "$subtract": [ "$CreationDate", new Date("1970-01-01") ] },
                { "$mod": [
                    { "$subtract": [ "$CreationDate", new Date("1970-01-01") ] },
                    1000 * 60 * 60 * 24
                ]}
            ]
        },
        "cnt": { "$sum": 1 }
    }},
    { "$sort": { "cnt": -1 } }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truyền tham số mô hình vào mô hình mongoose

  2. Mongoose từ chối truyền chuỗi hợp lệ sang ObjectId

  3. Mảng tổng hợp MongoDB với hai trường

  4. Tự động tạo chỉ mục với mongoid

  5. Hợp nhất các trường mảng trong tổng hợp MongoDB