php7 laravel mongodb,laravel操作mongodb笔记!

windows下cmd切换到laravel项目目录使用如下命令,用composer引入mongodb。

composer require jenssegers/mongodb #

6e795dce2acc

image.png

在config文件夹下的app.php中追加代码。

Jenssegers\Mongodb\MongodbServiceProvider::class, #providers数组追加

'Mongo' => Jenssegers\Mongodb\MongodbServiceProvider::class,#aliases数组追加

6e795dce2acc

image.png

6e795dce2acc

image.png

同样config文件夹下的database.php中,connections追加mongodb配置

6e795dce2acc

image.png

vendor下增删改查等方法

6e795dce2acc

image.png

#mongo测试方法

#查询

public function mongoList(){

$model = \DB::connection('mongodb')->collection('test'); #链接mongodb的test集合

$res = $model->get(); #获取集合所有文档

dd($res);

}

#添加

public function mongoAdd(){

$model = \DB::connection('mongodb')->collection('test'); #链接mongodb的test集合

$data = ['name'=>'root','age'=>18];

$res = $model->insert($data); #插入集合文档,数组形式传递参数

dd($res);

}

#编辑

public function mongoEdit(){

$model = \DB::connection('mongodb')->collection('test'); #链接mongodb的test集合

$data = ['name'=>'root','age'=>18];

$where = ['name'=>'admin'];

$res = $model->update($data,$where); #更新集合文档,数组形式传递参数

dd($res);

}

#删除

public function mongoDel(){

$model = \DB::connection('mongodb')->collection('test'); #链接mongodb的test集合

$res = $model->where(['name'=>'rad'])->delete(); #根据条件删除文档

dd($res);

}

6e795dce2acc

image.png

controller调用model操作mongodb

namespace App\Http\Models;

use Mongo;

use DB;

class Mongodb extends Mongo {

public const CONNECTION = 'mongodb';#连接mongodb

public const COLLECTION = 'test'; #集合名称

public static function test() {

$test = DB::connection(self::CONNECTION)->collection(self::COLLECTION)->get();#获取集合文档

return $test;

}

}

#####

use App\Http\Models\Mongodb; #控制器中使用mongodb

public function mongo(){

$res = Mongodb::test();

dd($res);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB 中,可以使用聚合管道来进行多表查询。聚合管道是一种操作数据的框架,可以在多个阶段对数据进行转换和处理。下面是一个使用 MongoDB 聚合管道进行多表查询的示例: 假设我们有两个集合,一个是用户集合(users),一个是订单集合(orders)。每个订单都对应一个用户。我们想要查询所有订单,并将其对应的用户信息也一并返回。 1. 首先,在 orders 集合中添加一个字段 userId,表示该订单对应的用户 ID。 2. 使用聚合管道进行查询,具体步骤如下: a. 使用 $lookup 阶段连接 users 集合和 orders 集合,将 orders 中的 userId 与 users 中的 _id 进行匹配。$lookup 阶段会将匹配的用户信息添加到每个订单文档中。 b. 使用 $unwind 阶段展开 orders 集合中的数组字段(如果有的话)。 c. 使用 $project 阶段选择要返回的字段,可以同时选择 orders 和 users 集合中的字段。 d. 使用 $match 阶段筛选符合条件的订单,可以根据订单状态、时间等条件进行筛选。 下面是一个示例代码: ``` db.orders.aggregate([ { $lookup: { from: "users", localField: "userId", foreignField: "_id", as: "user" } }, { $unwind: "$items" }, { $project: { _id: 1, userId: 1, status: 1, total: { $sum: "$items.price" }, user: { $arrayElemAt: [ "$user", 0 ] } } }, { $match: { status: "completed" } } ]) ``` 这个查询会返回所有状态为 completed 的订单,每个订单文档中都包含一个 user 子文档,其中包含该订单对应的用户信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值