2016-09-08 36 views
0

私は以下のようなdbエントリを持っています。私はadded_onで並べ替えたいのですが、それは与えるエラーです。私はそれはあなたが見落としマイナーな問題だと思う、私たちは、この形式で日付を並べ替えるためにいくつかの方法がありますかまたは日付mongodb pymongoで日付をソートする

{ 
    "_id" : ObjectId("57d1a9dc1170b35414a180d7"), 
    "c" : "TPCG", 
    "modified_on" : ISODate("2016-09-08T18:11:40.150Z"), 
    "euuu" : "5", 
    "owner" : null, 
    "added_on" : ISODate("2016-09-08T18:11:40.150Z") 
} 

エラー

> db.testjobs.find({'add_on':{$lte: ISODate("2016-09-08T18:11:40.150Z")}}).sort('added_on',-1).limit(3) 
Error: error: { 
    "$err" : "Can't canonicalize query: BadValue sort must be object or array", 
    "code" : 17287 
} 

>db.testjobs.find().sort('added_on',-1) 
Error: error: { 
    "$err" : "Can't canonicalize query: BadValue sort must be object or array", 
    "code" : 17287 
+0

あなたの質問はpymongoでタグ付けされていますが、表示されるコードはシェルで実行されているJSのようですか? – JohnnyHK

+0

それはmongodbターミナルの出力です、私のソートはターミナルで失敗しましたので、pymongoのために進んでいませんでしたが、pymongoの考えを分かち合うことができます。 – pkm

+0

あなたの入力の誤った構文が原因です。 –

答えて

3

を格納する他のいくつかの形式を使用することが提案されている:)

最初のステートメントには、 'added_on'の代わりに 'add_on'というフィルタが含まれていました。 両方が( 'added_on' -1 ')ソート含まれ、これはソートする必要があります(' added_on」:-1)の両方がここで働いている

db.testjobs.find({'added_on':{$lte: ISODate("2016-09-08T18:11:40.150Z")}}).sort('added_on' : -1).limit(3)}) 

db.testjobs.find().sort('added_on':-1)