【问题标题】:How can I store a Java HashMap<String,Double> in mongodb using Morphia?如何使用 Morphia 在 mongodb 中存储 Java HashMap<String,Double>?
【发布时间】:2026-01-25 03:50:01
【问题描述】:

我有一个用户定义的类CostMatrix 这个类包含两个属性,两个属性的数据类型都是HashMap。我正在使用 Morphia 与 mongodb 进行通信,所以我的实体类看起来像这样

 @Entity(value = "CostMatrix",noClassnameStored = false)
    public class CostMatrix {
        @Id
        private String id;

        private HashMap<String,Double> distances;

        private HashMap<String,Double> durations;
        public CostMatrix(){}

        public CostMatrix(String id, HashMap<String,Double>distances, HashMap<String,Double>durations) {
            this.id = id;
            this.distances = distances;
            this.durations = durations;
}

我无法将对象正确存储到数据库中,对象以任何方式存储,但是当我检索它时,它只返回 id 和类名,任何想法都会受到赞赏。

【问题讨论】:

  • 从 Mongo shell 中保存的文档是什么样的?

标签: mongodb morphia


【解决方案1】:

如果您不想在集合中包含任何类/包名称,只需将 noClassnameStored 标志设置为 true。

@Entity(value = "CostMatrix",noClassnameStored =**true**)

至于保存部分,您是否在地图中填写了一些值?映射器将忽略空值和空列表。

【讨论】: