sequelize関係qerry
Sequlizeリレーションシップクエリー
プロジェクトの進行中に、モデルにリレーショナル・クエリーを設定する詳細がリストされましたが、このモデルにデータを登録する資料は少ないので、整理しました.
まず、userとfollowを1対多の関係に設定します.1人のプレイヤーは複数の追随者を持つことができる.
DB Diagramは
この場合はsequelizeモデル設定です.
これを行うことができますが、apiが各アドレスの葦のテーブルでデータをクエリーし、格納する問題があるテーブルを作成しました.
(1)データ照会
findOneまたはfindAllを使用してデータをクエリーします.しかし、私たちが今クエリーする必要があるのは、userテーブルでfolwingと関係のあるuserを検索することです.
この場合、include
を使用してこの問題を解決することができる.const { user } = require('../models')
user.findOne({
include : { model : following, where : { name : req.body.name } }
})
(2)データの追加
上記の内容は理解できますが、問題は、次にデータをインポートできることですが、データベースのテーブルにデータを追加する必要があります.
最初の試みは上記のように行われたが、もちろん成功しなかった.sequelizeリレーションシップクエリーの変更、作成、削除は、異なる方法で行う必要があります.const user = await user.findOne({ where : {name : req.body.name}})
const following = await following.create({ following : req.body.name, user_id : req.body.id})
await user.addFollowing(following);
このコードaddFollowing
を初めて見ました.私はそんなことを宣言したことがありません.なぜそんなものが現れたのかと急に思いました.研究により,モデルに関係が確立されると,動詞の後ろにモデル名を付ける方法がサポートされることが分かった.(原理は...探しても見つからない)
上の方法のほかに、他の方法があります.
get(テーブル名):クエリー
set(テーブル名):変更
add(テーブル名):作成
add(テーブル名)s:複数作成
remove(テーブル名):削除
ソース
https://velog.io/@delay100/Sequelizewith-MySQL-2
Reference
この問題について(sequelize関係qerry), 我々は、より多くの情報をここで見つけました
https://velog.io/@tastestar/sequelize-query-관계-qeury
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
const { user } = require('../models')
user.findOne({
include : { model : following, where : { name : req.body.name } }
})
const user = await user.findOne({ where : {name : req.body.name}})
const following = await following.create({ following : req.body.name, user_id : req.body.id})
await user.addFollowing(following);
Reference
この問題について(sequelize関係qerry), 我々は、より多くの情報をここで見つけました https://velog.io/@tastestar/sequelize-query-관계-qeuryテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol