首页 > 解决方案 > 如何在 MongoDB 中将字符串转换为对象?

问题描述

在我的 Mongo 数据库中,我有一个带有“类别”字段的“书籍”集合。过去,“类别”是在 Mongo 中映射为字符串的枚举,但现在我需要“类别”作为我的“书籍”集合中的一个对象。我能做些什么?是否有可以执行一次转换所有文档的查询?

例如,今天的类别是这样的:

"category" : "Sci-Fi and Fantasy"

但我需要转换为:

"category" : {
        "_id" : ObjectId("3f07bc56po324021df23a8f1"),
        "code" : NumberLong(1),
        "name" : "Sci-Fi and Fantasy"
    }

标签: javaspringmongodb

解决方案


MongoDB 不是 SQL,您可以在 mongo 集合中同时拥有这两种记录,尽管在读取记录时您可能需要构建一些逻辑来创建相同的实体。如果您基于该特定属性进行搜索,这可能会导致问题。

您可以创建一个具有不同名称的新属性,同时保留类别,然后将新属性添加到所有记录中。


推荐阅读