gpt4 book ai didi

java - 如何从 MongoDB 获取 ObjectId 值?

转载 作者:行者123 更新时间:2023-12-02 05:46:09 24 4
gpt4 key购买 nike

我正在将 JongoPlay Framework 2、java.lang.我在 MongoDB 中添加了一些数据。

{"_id" : ObjectId("538dafffbf6b562617252178"), ... }

但是,当我从数据库中获取 ObjectId 时,它给了我这样的信息:

de.undercouch.bson4jackson.types.ObjectId@484431ff 而不是 538dafffbf6b562617252178。我不太明白如何获取 ObjectId 值。我的类定义如下:

public class Product {
@JsonProperty("_id")
protected String id;
...
public Product() {
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}
}

编辑

为了获取数据,我只需使用 Jongo 提供的 find() 函数,如下所示:

public static Iterable<Product> findAll(){
return products().find().as(Product.class);
}

最佳答案

用 @JsonProperty("_id") 注释的 id 字段仅意味着您的产品文档具有自定义 id(即由用户设置,例如:1234、5678,...)

您应该使用 @Id 和 @ObjectId 注释来注释 id 字段,以告诉 Jongo 将 id 字段作为由 MongoDB 管理的真实 ObjectId 来处理。

public class Product {

@org.jongo.marshall.jackson.oid.Id
@org.jongo.marshall.jackson.oid.ObjectId
protected String id;
...
public Product() {
}
}

在反序列化期间,ObjectId 的字符串表示形式将被设置到 Product 实例中

关于java - 如何从 MongoDB 获取 ObjectId 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24055669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com