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})
    
  • 拥有一个名为Countries的不同集合,其中每个文档都有与特定国家相关的详细信息,然后将特定国家的id存储在游戏模型中


  • 关于文档,您可以使用传递类扩展模型而不是字符串名的方法

    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”(即模型)。