Javaを使用してmongodbのISODateフィールドを検索する際に問題があります。私は正確に一致する日付を探したい。Javaを使用したMongoDB ISODateフィールド検索
私は最初のコレクションを照会し、ISODateフィールドの "タイムスタンプ"を取得します。この日付を取得すると、同じ「タイムスタンプ」値を持つ別のコレクションを検索したいと考えています。
FindIterable<Document> docList = thermalComfortCollection.find();
for(Document doc: docList) {
String ts = doc.get("Timestamp").toString();
System.out.println(ts);
...
それは私が検索したい別の形式で私の日付を返しますので、私はISODateをフォーマットしています。そのため、私はこのパターン「:MM:YYYY-MM-DD HH SS」に変換しています
final DateTimeFormatter inputFormat =
DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy");
// The parsed date
final ZonedDateTime parsed = ZonedDateTime.parse(ts, inputFormat);
// The output format
final DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String date = outputFormat.format(parsed);
私はISODateタイプと完全に一致文を書く方法を見つけることができませんでしたので、私はGTEとLTEの両方を入れています正確なマッチを得るための条件..!
BasicDBObject query = new BasicDBObject("Timestamp", //
new BasicDBObject("$gte", date).append("$lte", date));
System.out.println(query);
クエリが機能していません。私のコードの一部が間違っているコメントを教えてください。
ありがとうございます!私は自分のコードに問題があることを発見しました。なぜなら、日付付きのフィルタを正しく配置しなかったからです。 – ejshin1