MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Преобразувайте датата от милисекунди в обект ISODate

Всъщност е възможно, трикът е да добавите вашето време за милисекунди към обект Date() с нула милисекунди, като използвате синтаксис, подобен на:

dt : {$add: [new Date(0), "$time"]}

Промених вашето агрегиране отгоре, за да дам резултат:

db.events.aggregate(
    {
        $project : {
            _id : "$_id",
            dt : {$add: [new Date(0), "$time"]}
        }
    },
    { 
        $project : {
            _id : "$_id",
            date : { 
                hour : {$hour : "$dt"} 
            }
        }
    }
);

Резултатът е (с едно въвеждане на вашите примерни данни):

{
  "result": [
    {
      "_id": ObjectId("532828ac338ed9c33aa8eca7"),
      "date": {
        "hour": 11
      }
    }
  ],
  "ok": 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да слушате за промени в колекция MongoDB?

  2. Защо MongoDB е толкова бърз

  3. Преименувайте поле в резултатите от заявката в MongoDB

  4. MongooseError [MongooseServerSelectionError]:връзката <монитор> към 52.6.250.237:27017 затворена

  5. Каква е разликата между findAndModify и update в MongoDB?