社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  MongoDB

MongoDB Spring的日上限和下限

Avi Patel • 5 年前 • 248 次点击  

我有一个数据库,我正在为用户在数据库上执行的每个更新保存日志。我想检查用户是否在24小时内更新数据,然后更新日志,否则如果数据更新后超过一天,则不更新该天的日志,而是插入新日志。为此,我需要为插入数据的时间设置上限和下限。

我写下一个函数,它将检查数据是否在24小时后更新,但我不知道在一天内将什么作为上限和下限。

// returns 24 hours records, by Id and Crop...
    private FarmerCropDataLog findLogByIdAndCrop(Farmer farmer, Crop cropData) {

        String farmerId = farmer.getId();

        // TODO Auto-generated method stub
        Query query = new Query();
        query.addCriteria(Criteria.where(FarmerCropDataLog.Constants.FARMER_ID).is(farmerId));
        query.addCriteria(Criteria.where(FarmerCropDataLog.Constants.CROP).is(Crop.valueOf(Crop.class, cropData.name())));
        query.addCriteria(Criteria.where(FarmerCropDataLog.Constants.CREATION_TIME).lt(UPPER_BOUND));
        query.addCriteria(Criteria.where(FarmerCropDataLog.Constants.CREATION_TIME).gte(LOWERBOUND));
        List<FarmerCropDataLog> logData = farmerCropDataLogDao.runQuery(query, FarmerCropDataLog.class);
        if (logData != null) {
            return logData.get(0);
        } else {
            return null;
        }
    }

编辑-GT;

上限应为24*60*60*1000,下限应为0?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30801
 
248 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Pietro Martinelli
Reply   •   1 楼
Pietro Martinelli    5 年前

根据注释中的信息,我认为您可以按如下方式对边界值进行估值:

long millisPerDay = 24 * 60 * 60 * 1000;
long upperBound = System.currentTimeMillis();
long lowerBound = upperBound - millisPerDay;

注意:您应该检查timestamp字段是使用unix时间戳(以秒为单位)还是自1970年1月1日起使用millis:在第一个场景中,您的值应该除以1000。

希望这能帮助您正确设置查询…