【问题标题】:REST API in nodejs and mongodb for blog用于博客的 nodejs 和 mongodb 中的 REST API
【发布时间】:2019-04-27 11:56:06
【问题描述】:

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

我该怎么做?

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    基本上有两种方式。

    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

    【讨论】:

      猜你喜欢
      • 2012-05-25
      • 2016-09-23
      • 2018-10-12
      • 2011-07-10
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多