首页 > 解决方案 > 如何在 Mongoose.js 中创建“对象数组的数组”模式

问题描述

我需要为以下数据结构创建模式:

{
  ...
  matrix: [
    [{type: "A", count: 6}, {type: "B", count: 4}],
    [{type: "B", count: 1}, {type: "A", count: 2}, {type: "A", count: 1}],
    [{type: "C", count: 7}, {type: "A", count: 1}],
  ]
}

我在定义我的架构时尝试这样做,但它导致了验证错误:

const cellSchema = new mongoose.Schema({
  type: String,
  count: Number
});

const matrixSchema = new mongoose.Schema({
  ...
  matrix: [[cellSchema]]
});

Mongoose( https://github.com/Automattic/mongoose/issues/1361 )现在似乎支持这种模式语法。

标签: mongodbmongoosemongoose-schema

解决方案


创建对象数组的示例代码:

const cellSchema = new mongoose.Schema({
    type: String,
    count: Number
});

const matrixSchema = new mongoose.Schema({
    matrix: [[cellSchema]]
});

const Matrix = mongoose.model('Matrix', matrixSchema);

const newMatrix = new Matrix({
    matrix: [
        [{ type: 'xyz', count: 10 }, { type: 'ABC', count: 20 }],
        [{ type: 'pqr', count: 10 }]]
});
newMatrix.save();

输出 在此处输入图像描述


推荐阅读