我很难增加标签架构的articleCount字段。
标记架构:
let tagSchema = new Schema({
name: {
type: String,
required: true
},
createdAt: {
type: Date,
required: true
},
articleCount: {
type: Number,
default: 0
}
})
文章shema:
let articleSchema = new Schema({
...
tags: {
ref: 'tags',
type: [Schema.Types.ObjectId]
}
})
所以我需要每次添加新文章时,列出的所有标签都增加一。
要获得这样的东西:
POST /api/articles
{
...
"tags": ["5bfaaedbfe407d345ba2745b", "5bfab93ff73c0d117bd55ea6"]
}
GET /api/tags
{
"articleCount": 1,
"_id": "5bfaaedbfe407d345ba2745b",
"name": "javascript",
"createdAt": "1970-06-28T18:09:05.485Z",
"__v": 0
},
{
"articleCount": 1,
"_id": "5bfab93ff73c0d117bd55ea6",
"name": "css",
"createdAt": "1970-06-28T18:09:05.485Z",
"__v": 0
}
我该怎么做?
答案 0 :(得分:0)
基本上有两种方法。
找到一个可帮助您生成MongoDB接口和逻辑的ORM框架。有诸如Mongoose之类的特定于DB的ORM,也有诸如Loopback之类的通用跨语言,跨DB ORM框架。这些通常会要求您提供一个架构,它们会生成API。优点是一切都照顾好了,但需要一些学习曲线,灵活性较差。
手动编写一组您需要照顾的api并自己设置路由器路径,对于每个路由,您可以在操作详细信息中创建函数和代码。为此,您将需要为自己的模式(也许每个模式单独)编写CRUD。优点是(较小的)开发周期更快,功能更小,功能更有限,灵活性更高。
有关REST接口的正式MongoDB文档是一个开始研究的好地方。 https://docs.mongodb.com/ecosystem/tools/http-interfaces/#rest-interfaces