sql >> Databáze >  >> NoSQL >> MongoDB

Konverze datových typů v MongoDB

Můžete to udělat pomocí $concat ale nejprve musíte převést na řetězec pomocí $substr , také zpracovává dvouciferná velká a malá písmena:

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 }}
]);

Možná je lepší místo toho použít matematiku data, ta vrátí hodnotu časového razítka epochy, ale je snadné zapracovat do objektu data při následném zpracování:

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. Uspořádání výsledků dotazu MongoDB (dotaz na číselný rozsah)

  2. Mongo, najdi seznam ID

  3. Problémy s CORS. Baňka <-> AngularJS

  4. mongodump ze vzdáleného uzlu - nelze se autentizovat pomocí mechanismu SCRAM-SHA-256