Mongo での私のドキュメント構造は次のようになります。
デシベル.ユーザー.find()
{
"_id" : ObjectId("560fa46930a8e74be720009a"),
"createdAt" : ISODate("2015-10-03T09:47:56.333Z"),
"message" : "welcome",
}
{
"_id" : ObjectId("560fa46930a8e723e720009a"),
"createdAt" : ISODate("2015-10-03T09:48:25.048Z"),
"message" : "thank you"
}
Mongo Shell で以下のクエリを使用して、指定された 2 つのタイムスタンプの間のドキュメントを検索すると、正しい結果が得られます。
db.user.find({createdAt:{$gte:ISODate("2015-10-03T09:40:25.048Z"),$lte:ISODate("2015-10-03T09:50:56.333Z")}})
Java ドライバーを操作するために、REST サービスで Spring と共に MongoRepository を使用しています。以下はユーザーリポジトリです。
public interface UserRepository extends MongoRepository<User, String>
{
ArrayList<User> findbyCreatedAtBetween(Date d1, Date d2);
}
サービスで次の呼び出しを行うと、結果が返されません
userRepository.findbyCreatedAtBetween(2015-10-03T09:40:25.048Z, 2015-10-03T09:50:29.006Z)
ただし、前日として d1 を指定すると結果が返されます: userRepository.findbyCreatedAtBetween(2015-10-02T09:40:25.048Z, 2015-10-03T09:50:29.006Z)
これを解決する方法についてのアイデアはありますか? 助けてください!