node.js - Mongoose Typescript 2 Schema 有一个使用其他模式的字段
问题描述
我正在尝试使用 mongoose 和 typescript 声明 2 个模式,它们都有一个字段,它们的类型是另一个模式,如下所示:
const Schema1: Schema = new Schema({
fieldA: Number,
fieldB: Schema2
};
const Schema2: Schema = new Schema({
fieldA : Number,
fieldB : Schema1
};
问题是我得到一个错误,因为 Schema1 的 fieldB 上的 Schema2 在被分配之前正在被使用。
我之前已经尝试过声明它:
var Schema2: Schema = new Schema();
但是,当向数据库添加值时,Schema2 只是一个没有字段的空模式。
解决方案
我不认为你可以创建这样的子文档。根据docs,您可以创建一个子文档数组和单个子文档。并且他们始终保持着亲子关系。在您的情况下,如果您想使用子文档,您必须先声明它。因此,在schema1中,您已将schema2声明为子文档(子文档),但它在下面被引用。结构是
|--mongoose-schema
|--- children subdocument
|---- parent schema
推荐阅读
- php - 使用输入值,查询类别是否包含名称或公司名称。我要退回公司名单
- debugging - Intellij如何在调试期间从堆栈跟踪中打开源代码
- django - 如何使用 django 计算文件的下载次数
- python - Python WeakRef.WeakMethod 传递参数
- shell - 在使用 ^A(即 \001)作为分隔符的 CSV 文件末尾添加空列?
- javascript - javascript中的console.time()与Date.now()有什么区别,哪个性能更好
- arangodb - JSONarray 对象上的 ArangoSearch
- java - Spring中通用实例变量的依赖Bean注入
- php - PHP PDO 无法绑定浮点参数以按整数字段搜索
- c++ - 将指针分配给字符串变量中包含的地址