Node.js 在将属性保存到MongoDB之前更改其数据类型
我在JSON文件中有一些关于电影的数据。它包含title、director、cast等键。我正在尝试将数据从JSON文件保存到MongoDB。这里的问题是,我想将当前采用字符串格式的“cast”Node.js 在将属性保存到MongoDB之前更改其数据类型,node.js,mongodb,mongoose,mongoose-schema,mern,Node.js,Mongodb,Mongoose,Mongoose Schema,Mern,我在JSON文件中有一些关于电影的数据。它包含title、director、cast等键。我正在尝试将数据从JSON文件保存到MongoDB。这里的问题是,我想将当前采用字符串格式的“cast”“cast”:“Chris Burkard、Sam Hammer、Heidar Logi、Elli Thor Magnusson”的数据类型转换为类似于“cast”的数组:[“Chris Burkard”、“Sam Hammer”、“Heidar Logi”、“Elli Thor Magnusson”]
“cast”:“Chris Burkard、Sam Hammer、Heidar Logi、Elli Thor Magnusson”
的数据类型转换为类似于“cast”的数组:[“Chris Burkard”、“Sam Hammer”、“Heidar Logi”、“Elli Thor Magnusson”]
我知道我可以在json上手动执行类似的操作
const obj = {
title: "Some title",
cast: "Chris Burkard, Sam Hammer, Heidar Logi"
}
const newObj = {
...obj,
cast: obj.cast.split(",")
}
但我想用Mongoose或MongoDB来实现这一点
这是模式
const moviesSchema = new mongoose.Schema({
// other properties schema,
cast: {
type: [String],
required: [true, "The cast is required"],
},
我现在该怎么办?我曾经尝试过使用MongoDB前置中间件,但要么我不理解它们,要么使用它们毫无意义 基本上,使用该工具将json导入到您的movies集合,然后通过运行上述任何脚本(在标记的重复答案中)进行转换,例如,
db.movies.aggregate([{“$addFields”:{“cast”:{“$split”:[“$cast”,”,“]}},{$out:“movies”}])