実行するmongoクエリがあります:
_query = { "dateField" : { "$gte" : ISODate('2011-11-10T07:45:32.962Z') } }
_
Mongoシェルでdb.Collection.find(query)
を実行すると、結果を取得できます。
Javaを使用してこれをクエリするにはどうすればよいですか?Dateパラメーターに基づいて文字列を作成しようとしましたが、文字列を作成する過程で、最終的には代わりに"ISODate('2011-11-10T07:45:32.962Z')"
として渡されます。 ISODate('2011-11-10T07:45:32.962Z')
の(周囲の引用符なし)。
Java APIを使用してこのクエリを作成するための最良の方法は何でしょうか?
ありがとう!
通常のJava Date--また、QueryBuilderをお勧めします:
Date d = new Date(); // or make a date out of a string...
DBObject query = QueryBuilder.start().put("dateField").greaterThanEquals(d).get();
私はたくさんの検索をしていて、mongoモデルにISODate
があるときにデータを取得する方法を見つけるのに1時間以上費やしています。
Dateのデフォルトのコンストラクターは非推奨であるため、私の場合は機能しませんでした。
BasicDBObject searchQuery = new BasicDBObject("_id" , 1);
try {
searchQuery.append("timestamp",BasicDBObjectBuilder.start( "$gte",new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS\'Z\'").parse("2015-12-07T10:38:17.498Z")).get());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}