8

lastUpdated フィールドに基づいて並べ替えを使用して、検索クエリの結果を返したいと思います。

現在、私は2つの方法を見てきました

最初のアプローチ

BasicDBObject query = new BasicDBObject();
query.put("updated_at","-1");
query.put(MONGO_ATTR_SYMBOL, "" + symbol);
DBCursor cursor = DBcollection.find(query).sort(query);

第二のアプローチ

DBCursor cursor = DBcollection.find(query,new BasicDBObject("sort", new BasicDBObject("lastUpdated ", -1)));

アイデアを処理するための最良のオプションは何ですか??

4

1 に答える 1

12

Java Driver API を見ると、メソッドfindは、返されるクエリとフィールドの 2 つのパラメーターを想定しています。

結果を並べ替えたい場合は、従来の検索方法を使用して DBCursor を並べ替えます。

DBCursor cursor = DBCollection.find(query);
cursor.sort(new BasicDBObject("lastUpdated ", -1));

DBCursor オブジェクトはデータベースへの遅延フェッチを行うため、オーバーヘッドなしでソート、制限、またはスキップを使用できます。

于 2012-12-18T16:44:31.540 に答える