【发布时间】:2019-10-05 12:37:18
【问题描述】:
我正在使用 NodeJS 和 typescript,并且我正在为我的函数进行输入以实现自动完成。
目前我有一个这样的用户实体架构
interface User {
"_id": string
"coach": {
"businessCard": string
}
"firstname": string
}
我正在为 coach 属性使用嵌套对象,但我的问题是:这样做有什么意义,在幕后 MongoDB 创建另一个以一对一关系引用的对象。
- 这可能会降低性能
- 我在键入函数以限制可以在 typescript 中定位的字段时遇到问题
让我们看一个例子:
await this.client.collection<User>('User').findOneAndUpdate(
{ _id: new ObjectID(userId) },
{"coach.businessCard": "50"},
);
将更新嵌套对象。
但是这种语法使用
interface User {
"_id": string
"coach.businessCard": string
"firstname": string
}
不同的是,现在我可以统一使用一种匹配点符号的语法。
那么,与使用扁平化的第二个符号相比,使用我给出的第一个符号有什么优势?
最好的问候
【问题讨论】:
标签: database mongodb typescript architecture nosql