MongoDB 返回字段为空

MongoDB returning field as null

我目前正在开发连接到 MongoDB 实例的应用程序。我遇到问题,我的对象的 'id' 字段在应用程序中没有被 returned 给我,而是被 returned 为 null。

架构具有如下定义的 'entity':

{
        "entity_id": String,
        "parent": String,
        "relevance": boolean
}

我正在使用 Java 同步驱动程序 (4.4.1) 查询集合,如下所示:

try {
    Entity testDoc = collection.find(eq("entity_id", entity_id)).first(); 
    if (testDoc != null) {
        //add entity to a list
    }
} catch (Exception e) {
    LOGGER.log(Level.SEVERE, "Failed to get Entity", e);
}

出于某种原因,当我查询 entity_id 除外时,这会为我提供对象中的每个字段。我一直收到此 returned 为:

entity_id=空

有两件事让我印象深刻。第一个是每个其他字段都是一个字符串(最初 Id 是一个 UUID 对象,但我在故障排除时进行了简化)并且如果是其他字段,它们仍然 return 。第二个是这个空值之前有一个空格,就好像它正在被格式化一样。其他空值 return 作为 field=null 而不是 field= null

我想看看是否有一些安全设置阻止事物被标记为 *_id 或 *id 被 returned 但我没有找到这样的例子。

编辑:为清楚起见,这里是实体 Pojo

public class Entity {

@BsonProperty(value = "entity_id")
private String entityID;
@BsonProperty(value = "parent")
private String parent;
@Deprecated
@BsonProperty(value = "relevance")
private boolean relevance;

public Entity() {}

public Entity(String entityID, String parent, Boolean relevance) {
    this.entityID = entityID;
    this.parent = parent;
    this.relevance = relevance;
}

public String getEntityID() {
    return entityID;
}

public void setEntityID(String entityID) {
    this.entityID = entityID;
}

public String getParent() {
    return parent;
}

public void setParent(String parent) {
    this.parent = parent;
}

public boolean isRelevant() {
    return relevance;
}

public void relevance(boolean relevance) {
    this.relevance = relevance;
}

}

因此,请为观看此内容的任何人更新,这似乎是我的 Eclipse IDE 的问题。

我将项目重新导入IntelliJ Community Edition 并重建了Maven 项目等...这样做之后,测试用例通过了,我的entityID returns 在查询中。希望如果其他人遇到这个问题,他们可以做类似的事情。