2016-10-02 3 views
1

ある文字列値で、私はこのようなオブジェクトを含むコレクションがあります。Mongoのソート実際に数

{ 
    "_id" : ObjectId("57f00cf47958af95dca29c0c"), 
    "id" : "...", 
    "threadId" : "...", 
    "ownerEmail" : "[email protected]", 
    "labelIds" : [ 
     ... 
    ], 
    "snippet" : "...", 
    "historyId" : "35699995", 
    "internalDate" : "1422773000000", 
    "headers" : { 
     "from" : "[email protected]", 
     "subject" : "....", 
     "to" : "[email protected]" 
    }, 
    "contents" : { 
     "html" : "...." 
    } 
} 

オブジェクトにアクセスするとき、私は整数になるはずだったiternalDate値によってそれらをソートしたい、しかしをそれは文字列です。これらが文字列であってもフェッチするときにソートする方法はありますか?アルファベット順?あるいは、無意識に整数に変換する方法はありますか?

答えて

7

ここでの最適な解決策は、最初に整数として解析することです。あなたはノードのためのmongodbクライアントを使って、このようなjavascriptの簡単なスクリプトを使ってそれを行うことができます:

db.collection.find({}, {internalDate: 1}).forEach(function(doc) { 
    db.collection.update(
     { _id: doc._id }, 
     { $set: { internalDate: parseInt(doc.internalDate) } } 
    ) 
}) 
関連する問題