【问题标题】:How do I query "Timestamp() or Date()" with MongoTemplate to MongoDB?如何使用 MongoTemplate 向 MongoDB 查询“Timestamp() 或 Date()”?
【发布时间】:2014-11-15 23:32:08
【问题描述】:

我使用 MongoTemplate 来处理 MongoDB

我想将文档的列更新为当前时间

在 Mongodb 命令行客户端中,它可以使用

db.collectionName.update({_id:1}, {timeCol: new Timestamp()}); 要么 db.collectionName.update({_id:1}, {timeCol: new Date()});

但我不知道如何使用 mongoTemplate 来做到这一点。

更新更新; update.set("timeCol", "new Timestamp()"); // 当然,它不起作用

请帮帮我

【问题讨论】:

    标签: mongodb mongodb-query spring-data-mongodb


    【解决方案1】:

    从 Spring-data-mongodb 1.6 版本更新这样的集合,这将使用 MongoDb 当前日期

    Query query = new Query();
    query.addCriteria(Criteria.where("_id").is(1));
    
    Update update = new Update();
    update.currentDate("timeCol")
    
    mongoOperations.updateFirst(query, update, "collectionName");
    

    如果你想要时间戳使用 update.currentTimestamp(key);而不是 update.currentDate(key)

    【讨论】:

    • @Minsu 对你有帮助
    【解决方案2】:

    构建当前时间戳为

    Date currentDate = new Date();
    Timestamp timeStamp = new Timestamp(currentDate.getTime());
    

    然后像这样更新集合:

    Query query = new Query();
    query.addCriteria(Criteria.where("_id").is(1));
    
    Update update = new Update();
    update.set("timeCol", timeStamp);
    
    mongoOperations.updateFirst(query, update, "collectionName");
    

    【讨论】:

    • 感谢您的回答。我使用了它,但它不是 DB 的时间戳,而是 WAS 的时间戳。我想更新数据库服务器的准确时间戳
    猜你喜欢
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2017-03-28
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多