如何在猫鼬中存储对象的关联数组

时间:2020-07-09 02:59:18

标签: node.js mongodb mongoose

我有一个大型数据集,其结构如下:

[
  Person1: { Mid: 0, Support: 0, Jungle: 0, Top: 0, Bot: 0 },
  Person2: { Mid: 0, Support: 0, Jungle: 0, Top: 0, Bot: 0 },
  Person3: { Mid: 0, Support: 0, Jungle: 0, Top: 0, Bot: 0 },
]

我的架构如下:

const rankSchema = new Schema(
  {
    rank: Schema.Types.Mixed,
    lastUpdated: { type: Date, default: Date.now() },
  },
  { minimize: false }
);

我也尝试过:

{
    rank: [],
    lastUpdated: { type: Date, default: Date.now() },
},
// and also
 {
    rank: { type: Schema.Types.Mixed },
    lastUpdated: { type: Date, default: Date.now() },
  },

但是我似乎什么都没做。我开始认为不可能存储这样的信息,所以什么是构造数据的最佳方法,这样我就不必遍历整个数组来查找特定的人。

编辑:为澄清起见,我试图将整个数据集存储在架构的“等级”值中。

1 个答案:

答案 0 :(得分:0)

您可以像这样格式化数据:

let  data = {
  Person1: { Mid: 0, Support: 0, Jungle: 0, Top: 0, Bot: 0 },
  Person2: { Mid: 0, Support: 0, Jungle: 0, Top: 0, Bot: 0 },
  Person3: { Mid: 0, Support: 0, Jungle: 0, Top: 0, Bot: 0 }
}

然后您可以通过以下属性来访问它:

data.Person1, data.Person2 ...

您还可以仅将Object用作“排名”字段的type,然后可以将数据直接存储到该字段中

const rankSchema = new Schema(
  {
    rank: {type: Object}
    lastUpdated: { type: Date, default: Date.now() },
  },
  { minimize: false }
);