Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8913

【mongoose】mongoDBに大量のdataをSeedする【seedgoose】

$
0
0

seedgooseについて

最近ポケモン関連のアプリを作成していて、ポケモン達の画像のurlをmongodbに保存しています。
なので、手軽に大量のデータをseedできるプラグインないかなーって探してたらこのプラグインを見つけて
簡単に実現できたので、備忘録として書きます。

設定より規約の思想で作られているため、多少注意点などありますのでそれも説明していきます。

git
seedgoose

執筆時点では星は9個しかついてないです。
ですが、かなりお手軽にできるのでおすすめです。

導入

npm i seedgoose

package.jsonにnpm scriptを追加します。
npm run seedでseedを流す事ができるようになります。

package.json
"scripts":{"seed":"seedgoose seed"}

ディレクトリ構成

※必ず、以下のようにmongooseで定義したmodelの名前を複数形にしたjsonファイルをdataフォルダの配下に作成する必要があります。

─ data
  ├── pokemons.json 
pokemons.json
[{"_id":"11111111111","pokedex":"1","imageUrl":"https://hogehoge.1.png","name":""},{"_id":"22222222222222","pokedex":"865","imageUrl":"https://hogehoge.865.png","name":""}]
models/Pokemon.js
constmongoose=require("mongoose");constPokemon=mongoose.model("Pokemon",newmongoose.Schema({name:{type:String},pokedex:{type:String},imageUrl:{type:String}}));module.exports={Pokemon};

つづいて設定ファイルを作成します。
※必ずファイル名は.seedgooserc.jsとして下さい。

seedgooserc.js
require("dotenv").config({path:".env"});module.exports={modelBaseDirectory:"./models",models:"*.js",data:"data",db:process.env.MONGO_URI};

seed実行

上記のファイルの作成が終わったら以下のコマンドでseedを実行します。

npm run seed

以下のように表示されていれば正常にデータが生成されています。

  create 11111111111 in pokemons

seedをやり直したい場合や、削除したい場合は、npm scriptに以下のように書けばいけるようです。

package.json
"scripts":{"seed":"seedgoose seed","reseed":"seedgoose reseed","unseed":"seedgoose unseed"}

ここまで読んでくださりありがとうございます。
すごくシンプルで使いやすいプラグインだと思いますのでぜひ使ってみてください。

それでは!


Viewing all articles
Browse latest Browse all 8913

Trending Articles