繁体   English   中英

MongoDB 返回字段为 null

[英]MongoDB returning field as null

我目前正在开发连接到 MongoDB 实例的应用程序。 我遇到问题,我的 object 的“id”字段没有在应用程序中返回给我,而是作为 null 返回。

该模式具有如下定义的“实体”:

{
        "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 除外时,这将给我 object 中的每个字段。 我一直把它退回为:

entity_id=null

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

我想看看是否有一些安全设置阻止事物被标记为 *_id 或 *id 被返回,但我没有发现这样的实例。

编辑:为清楚起见,这是 Entity 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 在查询中返回。 希望如果其他人遇到这个问题,他们可以做类似的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM