如何计算使用Objection.js在特定表中引用行的主键的次数

问题描述

(使用PostgreSQL) 因此,我有以下(用户和投票)Objection.js模型:

const { Model } = require('objection');

class User extends Model {
  static get tableName() {
    return 'users';
  }
  static get relationMappings() {
    return {
      posts: {
        relation: Model.HasManyRelation,modelClass: require('./Post'),join: {
          from: 'users.id',to: 'posts.userId',},comments: {
        relation: Model.HasManyRelation,modelClass: require('./Comment'),to: 'comments.userId'
        }
      },votes: {
        relation: Model.HasManyRelation,modelClass: require('./Vote'),to: 'votes.userId'
        }
      }
    };
  }
}

module.exports = User;

const { Model } = require('objection');

class Vote extends Model {
  static get tableName () { return 'votes' }
  static get relationalMappings () {
    return {
      user: {
        relation: Model.BelongsToOneRelation,modelClass: require('./User'),join: {
          from: 'votes.userId',to: 'users.id'
        }
      },post: {
        relation: Model.BelongsToOneRelation,join: {
          from: 'votes.postId',to: 'posts.id'
        }
      }
    }
  }
}

module.exports = Vote;

psql命令\d users返回:

                              Table "public.users"
   Column    |          Type          | Collation | Nullable |      Default
-------------+------------------------+-----------+----------+-------------------
 id          | uuid                   |           | not null | gen_random_uuid()
 username    | character varying(128) |           | not null |
 displayname | character varying(128) |           | not null |
 email       | character varying(256) |           | not null |
 description | character varying(256) |           |          |
 password    | character varying(512) |           | not null |
Indexes:
    "users_pkey" PRIMARY KEY,btree (id)
    "users_id_index" btree (id)
Referenced by:
    TABLE "comments" CONSTRAINT "comments_userid_foreign" FOREIGN KEY ("userId") REFERENCES users(id)
    TABLE "posts" CONSTRAINT "posts_userid_foreign" FOREIGN KEY ("userId") REFERENCES users(id)
    TABLE "votes" CONSTRAINT "votes_userid_foreign" FOREIGN KEY ("userId") REFERENCES users(id)

psql命令\d votes返回:

                    Table "public.votes"
 Column |  Type   | Collation | Nullable |      Default
--------+---------+-----------+----------+-------------------
 id     | uuid    |           | not null | gen_random_uuid()
 userId | uuid    |           | not null |
 postId | uuid    |           | not null |
 up     | boolean |           | not null |
 down   | boolean |           | not null |
Indexes:
    "votes_pkey" PRIMARY KEY,btree (id)
    "votes_id_index" btree (id)
Foreign-key constraints:
    "votes_postid_foreign" FOREIGN KEY ("postId") REFERENCES posts(id)
    "votes_userid_foreign" FOREIGN KEY ("userId") REFERENCES users(id)

我想做的是使用某种Model类方法(在User类上)来设置属性upvotes(将up设置为true的投票数),{{1 }}(将downvotes设置为true的投票数)和downbalance)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...