繁体   English   中英

Node.js和MongoDB中的REST API用于博客

[英]REST API in nodejs and mongodb for blog

我很难增加标签架构的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
}

我该怎么做?

基本上有两种方法。

  1. 查找可以帮助您生成MongoDB接口和逻辑的ORM框架之一。 有诸如Mongoose之类的特定于DB的ORM,还有诸如Loopback之类的通用跨语言,跨DB ORM框架。 这些通常会要求您提供一个架构,它们会生成API。 好处是一切都由您自己照顾,但需要一定的学习曲线,灵活性较差。

  2. 手工编写一组您需要照顾的api,然后自己设置路由器路径,对于每个路由,您都可以在操作详细信息中创建函数和代码。 为此,您将需要为自己的模式(也许每个模式单独)编写CRUD。 优点是(较小的)开发周期更快,功能更小,功能更有限,灵活性更高。

有关REST接口的MongoDB官方文档是开始研究的好地方。 https://docs.mongodb.com/ecosystem/tools/http-interfaces/#rest-interfaces

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM