MongoDB Laravel 快速入门:查看 MongoDB 数据教程

MongoDB Laravel 快速入门:查看 MongoDB 数据教程

laravel-mongodb A MongoDB based Eloquent model and Query builder for Laravel (Moloquent) laravel-mongodb 项目地址: https://gitcode.com/gh_mirrors/la/laravel-mongodb

前言

在使用 Laravel 开发应用时,MongoDB 是一个强大的 NoSQL 数据库选择。本文将详细介绍如何在 Laravel 项目中查看 MongoDB 数据,从模型创建到数据展示的全过程。

准备工作

确保你已经:

  1. 安装并配置好 Laravel 项目
  2. 安装并配置好 MongoDB 数据库
  3. 安装好 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';
}

关键点说明:

  1. 使用 MongoDB\Laravel\Eloquent\Model 替代 Laravel 默认的 Eloquent 模型
  2. 设置 $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()
    ]);
}

这个查询会:

  1. 查找时长小于60分钟的电影
  2. IMDB评分高于8.5
  3. 按评分降序排列
  4. 只取前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 即可看到查询结果。

小技巧

  1. 使用 php artisan route:list 查看所有可用路由
  2. 可以在查询中使用 MongoDB 特有的操作符
  3. 对于复杂查询,可以考虑使用 MongoDB 聚合管道

总结

通过本文,你学会了:

  1. 如何创建 MongoDB 模型
  2. 如何编写查询逻辑
  3. 如何展示 MongoDB 数据
  4. 如何返回 JSON 格式数据

MongoDB 在 Laravel 中的使用与传统的 Eloquent 非常相似,这使得开发者可以轻松地在关系型数据库和 NoSQL 数据库之间切换。

laravel-mongodb A MongoDB based Eloquent model and Query builder for Laravel (Moloquent) laravel-mongodb 项目地址: https://gitcode.com/gh_mirrors/la/laravel-mongodb

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钟冶妙Tilda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值