【问题标题】:Spring Data MongoDB return object converterSpring Data MongoDB 返回对象转换器
【发布时间】:2012-01-27 17:39:06
【问题描述】:

我有一个包含 50 个不同字段的大型文档。保存此文档时,只需要几个字段。当我通过 Spring Data MongoDB 获取该文档时,是否可以从对象中消除 null 值字段?

在保存 Spring Data 期间,MongoDB 做同样的事情,只保存那些不是 null 的值。

【问题讨论】:

    标签: mongodb spring-data


    【解决方案1】:

    我们的Query 类有一个fields() 方法,它返回一个Field 对象,该对象允许定义从文档中读取哪些字段(Javadoc)。因此,当针对集合执行查询对象时,您会得到部分文档,从而得到部分填充的域对象。

    【讨论】:

    • 感谢 Oliver 在这里的快速回复。不过我还有其他麻烦。我在我的代码中使用了这个。 @Query(value="{ 'id' : ?0, 'roles' : { $in : ?1 } }", fields="{ 'firstName' : 1, 'lastName' : 1}") 公共用户 findOneByIdAndRolesIn ( ObjectId id , List 角色);如您所见,我得到了一个用户对象作为回报。有没有一种方法可以让我们使用一小部分对象并提供给客户。像 { "firstName":"amit", "middleName":null, "lastName":"kaushik" } 并且没有中间名,因为它为空。提前致谢。
    • 您应该能够简单地创建一个仅包含三个字段的类并将其用作查找器方法的返回类型。这样,您就可以将返回的文档投影到专用类上。将要读取的字段限制为类中包含的字段可能仍然是合理的,以避免加载整个文档。
    猜你喜欢
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 2012-10-25
    • 2022-11-09
    • 1970-01-01
    • 2017-11-11
    相关资源
    最近更新 更多