MongoDB Laravel 快速入门:查看 MongoDB 数据教程
前言
在使用 Laravel 开发应用时,MongoDB 是一个强大的 NoSQL 数据库选择。本文将详细介绍如何在 Laravel 项目中查看 MongoDB 数据,从模型创建到数据展示的全过程。
准备工作
确保你已经:
- 安装并配置好 Laravel 项目
- 安装并配置好 MongoDB 数据库
- 安装好 Laravel MongoDB 扩展包
创建模型和控制器
首先我们需要创建一个模型来表示 MongoDB 中的电影数据:
php artisan make:model Movie -cr
这个命令会同时创建模型和对应的资源控制器:
- 模型文件:
app/Models/Movie.php
- 控制器文件:
app/Http/Controllers/MovieController.php
配置 MongoDB 模型
打开 Movie.php
模型文件,进行以下修改:
<?php
namespace App\Models;
use MongoDB\Laravel\Eloquent\Model;
class Movie extends Model
{
protected $connection = 'mongodb';
}
关键点说明:
- 使用
MongoDB\Laravel\Eloquent\Model
替代 Laravel 默认的 Eloquent 模型 - 设置
$connection
为'mongodb'
以使用 MongoDB 连接
实现控制器逻辑
在 MovieController.php
中,我们实现数据查询逻辑:
public function show()
{
return view('browse_movies', [
'movies' => Movie::where('runtime', '<', 60)
->where('imdb.rating', '>', 8.5)
->orderBy('imdb.rating', 'desc')
->take(10)
->get()
]);
}
这个查询会:
- 查找时长小于60分钟的电影
- IMDB评分高于8.5
- 按评分降序排列
- 只取前10条结果
配置路由
在 routes/web.php
中添加路由:
use App\Http\Controllers\MovieController;
Route::get('/browse_movies/', [MovieController::class, 'show']);
创建视图
生成视图文件:
php artisan make:view browse_movies
编辑 resources/views/browse_movies.blade.php
:
<!DOCTYPE html>
<html>
<head>
<title>Browse Movies</title>
</head>
<body>
<h2>Movies</h2>
@forelse ($movies as $movie)
<p>
Title: {{ $movie->title }}<br>
Year: {{ $movie->year }}<br>
Runtime: {{ $movie->runtime }}<br>
IMDB Rating: {{ $movie->imdb['rating'] }}<br>
IMDB Votes: {{ $movie->imdb['votes'] }}<br>
Plot: {{ $movie->plot }}<br>
</p>
@empty
<p>No results</p>
@endforelse
</body>
</html>
可选:返回 JSON 数据
如果你只需要 API 接口,可以直接返回 JSON:
public function show()
{
$results = Movie::where('runtime', '<', 60)
->where('imdb.rating', '>', 8.5)
->orderBy('imdb.rating', 'desc')
->take(10)
->get();
return $results->toJson();
}
启动应用并查看结果
启动开发服务器:
php artisan serve
访问 http://127.0.0.1:8000/browse_movies
即可看到查询结果。
小技巧
- 使用
php artisan route:list
查看所有可用路由 - 可以在查询中使用 MongoDB 特有的操作符
- 对于复杂查询,可以考虑使用 MongoDB 聚合管道
总结
通过本文,你学会了:
- 如何创建 MongoDB 模型
- 如何编写查询逻辑
- 如何展示 MongoDB 数据
- 如何返回 JSON 格式数据
MongoDB 在 Laravel 中的使用与传统的 Eloquent 非常相似,这使得开发者可以轻松地在关系型数据库和 NoSQL 数据库之间切换。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考