Mongo Java 驱动程序 ObjectId.getCounter() 已弃用

Posted

技术标签:

【中文标题】Mongo Java 驱动程序 ObjectId.getCounter() 已弃用【英文标题】:Mongo Java Driver ObjectId.getCounter() is Deprecated 【发布时间】:2020-05-15 08:57:42 【问题描述】:

我需要使用 "ObjectId" 对象的 "getCounter()" 方法,但目前它发现已弃用,我无法使用该方法覆盖 sonarqube覆盖范围,有什么方法可以代替“getCounter()”吗?

ObjectId objectId= new ObjectId(idMongo);
int counter = objectId.getCounter();

ObjectId 类中的方法

  /** @deprecated */
  @Deprecated
  public int getCounter() 
    return this.counter;
  

【问题讨论】:

【参考方案1】:

根据here找到的ObjectID格式规范

驱动程序不得在 ObjectID 类上具有访问器方法 获取这个值。

规范是使数字生成与服务器和驱动程序保持一致。

在 4.0 版中,他们将完全删除该方法。

所以你的问题的答案是否定的。

【讨论】:

以上是关于Mongo Java 驱动程序 ObjectId.getCounter() 已弃用的主要内容,如果未能解决你的问题,请参考以下文章

BSON::ObjectId 与 Mongo::ObjectID

在两个不同的集合中生成重复的 Mongo ObjectId 的可能性?

根据登录用户的 ObjectID 从 Mongo 获取数据

使用 ObjectId 作为 mongo 中用户的唯一标识符的替代方法是啥?

将 ObjectID 作为字符串导入

如何在 mongo 控制台中通过 ObjectId 搜索对象?