Docs Menu

MongoDB์— ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ

1

app/Http/Controllers ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” MovieController.php ํŒŒ์ผ์—์„œ store() ๋ฉ”์„œ๋“œ๋ฅผ ๋‹ค์Œ ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

public function store(Request $request)
{
$data = $request->all();
$movie = new Movie();
$movie->fill($data);
$movie->save();
}
2

๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ ํ•˜์—ฌ API ๊ฒฝ๋กœ ํŒŒ์ผ ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

php artisan install:api

ํŒ

Laravel 10.x๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ช…๋ น์ด ์ƒ์„ฑํ•˜๋Š” ํŒŒ์ผ์ด ์ด๋ฏธ ์กด์žฌํ•˜๋ฏ€๋กœ ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ฐ์„ธ์š”.

์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  routes/api.php ํŒŒ์ผ์—์„œ store() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” API ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

use App\Http\Controllers\MovieController;
// ...
Route::resource('movies', MovieController::class)->only([
'store'
]);
3

๋‹ค์Œ ์ฝ”๋“œ์— ํ‘œ์‹œ๋œ ๋Œ€๋กœ app/Models ๋””๋ ‰ํ† ๋ฆฌ์—์„œ Movie ๋ชจ๋ธ์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ fill() ๋ฉ”์„œ๋“œ๊ฐ€ ์ฑ„์šฐ๋Š” ํ•„๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

class Movie extends Model
{
protected $connection = 'mongodb';
protected $fillable = ['title', 'year', 'runtime', 'imdb', 'plot'];
}
4

movie.json ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

{
"title": "The Laravel MongoDB Quick Start",
"year": 2024,
"runtime": 15,
"imdb": {
"rating": 9.5,
"votes": 1
},
"plot": "This movie entry was created by running through the Laravel MongoDB Quick Start tutorial."
}

shell์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ JSON ํŽ˜์ด๋กœ๋“œ๋ฅผ ์—”๋“œํฌ์ธํŠธ์— POST ์š”์ฒญ์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

curl -H "Content-Type: application/json" --data @movie.json http://localhost:8000/api/movies
5

์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ http://127.0.0.1:8000/browse_movies ๋ฅผ ์—ด์–ด ์ œ์ถœํ•œ ์˜ํ™” ์ •๋ณด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์‚ฝ์ž…๋œ ๋™์˜์ƒ์ด ๊ฒฐ๊ณผ ์ƒ๋‹จ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด MongoDB Community ํฌ๋Ÿผ ์—์„œ ๋„์›€์„ ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ํŽ˜์ด์ง€ ์˜ค๋ฅธ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ์— ์žˆ๋Š” Rate this page ํƒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”ผ๋“œ๋ฐฑ์„ ์ œ์ถœํ•˜์„ธ์š”.