node.js - Mongoose - 实例化没有父级的子架构
问题描述
我试图分别创建一个文档和一个子文档。架构:
const mongoose = require('mongoose');
require('./streets');
const PlaceSchema = new mongoose.Schema({
place1: String,
streets: [{type: mongoose.Schema.Types.ObjectId, ref: 'streetSchema'}]
});
module.exports = mongoose.model('place', PlaceSchema);
子架构:
const mongoose = require('mongoose');
const StreetSchema = new mongoose.Schema(
{
trafficLights: Number,
shops: Number,
busStops: Number,
},
{ strict: false }
);
module.exports = StreetSchema;
然后我尝试自己实例化街道:
const place = // ...get a certain place from DB;
const street = new Street({
trafficLights: 1,
shops: 2,
busStops: 3,
});
place.streets.push(street)
我得到了
Street is not a constructor
如何创建实例化 subSchema 并将其推送到“streets”数组中?
PS - 我也尝试将两个模式放在同一个文件中,但是如果不实例化整个“地方”模式,就无法到达嵌套数组(街道)。
谢谢你。
解决方案
您应该创建一个模型,请将此行添加到您的架构文件的末尾
mongoose.model('street', StreetSchema);
并将其导入任何您需要的地方
const Street = mongoose.model('street');
推荐阅读
- javascript - 如何从事件数组 javascript 中删除“0”值?
- c++ - 是否可以声明模板的模板?
- regex - Regex Negative Lookbehind,匹配一个单词,只要不是在其他单词之前
- typescript - “YYY”类型中缺少属性“XXX”,但在“ZZZ”类型中是必需的
- python - 在循环中调用对象的函数时,它不会返回任何内容或执行它应该执行的任何工作。它没有给出任何错误
- javascript - 按下输入时如何在javascript中制作按钮按下动画
- python - 为什么一个 numpy 数组仍然是一个
当它里面有一个“sympy.core.symbol.Symbol”? - image - 从桌面应用程序 adobe air 下载图像
- python - 我在尝试使用英国日期格式时不断出错
- java - 如何更改 Android 应用程序中的通知设置?