Javascript 我可以在mongo中保存时更改集合名称吗?
我可以更改保存数据的集合的名称吗?我有一个游戏模型,最后我保存的数据如下:Javascript 我可以在mongo中保存时更改集合名称吗?,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,我可以更改保存数据的集合的名称吗?我有一个游戏模型,最后我保存的数据如下: const teamData = new Game({ id: id, homeTeamName: hTeam, awayTeamName: aTeam, homeTeamGoals: homeTeamGoals, awayTeamGoals: awayTeamGoals }) teamData.save() 每次它在收集游戏中保存,
const teamData = new Game({
id: id,
homeTeamName: hTeam,
awayTeamName: aTeam,
homeTeamGoals: homeTeamGoals,
awayTeamGoals: awayTeamGoals })
teamData.save()
每次它在收集游戏中保存,但是我可以为不同的收集使用相同的模型吗。我有来自英国、德国等国家的游戏。我需要每个国家的模型吗?或者我可以在保存时给出一些集合名称()你可以在这里做两件事
国家/地区
添加到您的车型中,如下所示:
const teamData = new Game({
id: id,
homeTeamName: hTeam,
awayTeamName: aTeam,
homeTeamGoals: homeTeamGoals,
awayTeamGoals: awayTeamGoals,
country: country})
关于文档,您可以使用传递类扩展模型而不是字符串名的方法 teamSchema将是您的通用模式
const teamSchema = new Schema({
id: string,
homeTeamName: string,
awayTeamName: string,
homeTeamGoals: number,
awayTeamGoals: number
})
然后,每次要将文档存储在不同的集合中时,都可以创建一个模型,如下所示:
const germanyModel = db.model('germany', new Game({
id,
homeTeamName: hTeam,
awayTeamName: aTeam,
homeTeamGoals,
awayTeamGoals
}));
germanyModel.save()
如果希望以编程方式执行此操作,当然可以使用字符串变量指定集合的名称:
const collection = 'spain';
const dynamicModel = db.model(collection, new Game({
id,
homeTeamName: hTeam,
awayTeamName: aTeam,
homeTeamGoals,
awayTeamGoals
}));
dynamicModel.save()
为什么不在游戏模型中添加一个
country
字段,并将该字段设置为英格兰、德国等。您甚至可以为country创建一个单独的模型,并在此模型中使用关系字段。您可以给我一个示例id吗?我为country添加了一个字段?好的,但是如何将country作为集合名称?为什么需要这样做,Country将是一个单独的集合,因此这将有一个单独的模型,您将通过在游戏中放置Country的id(如果您使用两个不同的集合)映射这两个集合,如果您不需要单独的Country集合(如果您不必存储特定于国家的详细信息)然后,只需在游戏集合中再添加一个字段“country”(即模型)。