mongodb - 如何在 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 )现在似乎支持这种模式语法。
解决方案
创建对象数组的示例代码:
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();
推荐阅读
- html - h1 元素需要 padding-top
- php - 正则表达式中 php 的路径
- c# - ZIP 文件之间有什么区别吗?
- angular - .NET Core Angular 项目控制器的单参数构造函数导致错误
- google-cloud-platform - GKE 集群无法创建实例
- php - 带有 PHP FRAMEWORKS 的 Google Analytics
- python - 访问 .csv 文件时使用 Pandas 获取 KeyError
- three.js - 将 Three.js AxesHelper 添加到组的所有子项。Axes Helper 位置默认为 0,0,0 foreach axeshelper
- java - Java - 获取不包含参数的调用 URL
- javascript - 从 HTML 挂载中调用异步函数