java - 使用 NumberLong 在 mongodb 中创建查询时出现问题

标签 java mongodb criteria-api mongotemplate

我的 Java 应用程序中有一个带有字段的类

Instant created;

这个在mongo中存储为

"created" : NumberLong("1467359610266") (f.e.)

我想创建一个查询来获取在 2 个日期之间创建的所有文档:

    public List<MarketingEmail> find(Long startDate, Long endDate) {
    Query query = new Query();
    query.addCriteria(Criteria.where("created").gte(startDate).lte(endDate));
    ...
}

我传递时间戳变量startDate和endDate(例如endDate = 1467981757)。 所以问题是 MongoDB 中的 NumberLong 有 13 位数字,而我的时间戳只有 10 位;所以我的查询根本不起作用

如何解决这个问题?

最佳答案

Mongo 时间戳使用毫秒。

要查询它,请将您的值乘以 1000(或简单地在末尾添加 000)

关于java - 使用 NumberLong 在 mongodb 中创建查询时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38267593/

相关文章:

java - 解释JPA Criteria API From类及其类型参数的含义

java - Java错误: reached end of file while parsing (Not typical)

javascript - 如何在保存之前等待创建流的循环完成?

hibernate - JPA 2 Criteria API 中的 Hibernate Restrictions.sqlRestriction 等效吗?

mongodb - 复制 MongoDB 中的属性

regex - 数字类型字段的 Mongoose find() RegExp

java - 在 jpa 标准中, "in case there is at least 1 row return true"

java - m2eclipse 将 'target' 目录标记为 'Derived'

java - 返回的接口(interface)对象如何声明其方法

java - 用包编译类会抛出错误