java - 创建/更新序列 - MongoDB

标签 java mongodb spring-data database

我创建了一个“序列”集合。它有“名称”和“计数器”字段。 “名称”字段设置为“标记”,“计数器”字段设置为 0。以下是返回“计数器”字段的下一个值的方法中的代码。

final Sequence tagSequence = mongoTemplate.findAndModify(
  new Query(Criteria.where("name").is("Tag")), 
  new Update().inc("counter", 1), 
  new FindAndModifyOptions().returnNew(true), Sequence.class);

但是,这段代码不起作用。有什么意见吗?

我在这里找到了一个实现,http://dev.bubblemix.net/blog/2011/04/auto-increment-for-mongodb-with-the-java-driver/但是,我想知道这段代码有什么问题。

最佳答案

如果您首先使用“Tag”名称在 MongoDB 中保存了 Sequence 对象,则您的代码可以正常工作。我建议您使用 @Id 注释对 name 字段进行注释。例如:

public class Sequence {
    @Id
    protected final String name;
    protected Long counter;

    public Sequence(String name, Long counter) {
        this.name = name;
        this.counter = counter;
    }
    public String getName() {
        return name;
    }
    public Long getCounter() {
        return counter;
    }
    public void setCounter(Long counter) {
        this.counter = counter;
    }

}

在 MongoDB 中保存对象:

template.save(new Sequence("Tag",0L))

关于java - 创建/更新序列 - MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11068201/

相关文章:

java - Java 8's HashMap misbehaves if the keys implement Comparable in a way that isn' t 与equals一致是不是bug?

node.js - Mongodb通过自定义id从 session 集合中查找结果

javascript - Node.js Mongoose 性能

spring data elasticsearch 3.1配置

java - 条件变量和锁的使用

java - 访问我已上传到 tomcat 服务器的图像

java - 有没有办法在继承中设置构造函数

java - java中的Mongo聚合

java - 抽象类中的Spring数据@Transient

java - Spring Data JPA CrudRepository 中定义的自定义更新查询无效