php - Laravel mongodb 聚合

标签 php laravel mongodb jenssegers-mongodb

是否可以在原始函数内使用外部变量?

$var = 'example';
$res = DB::collection("{$var}_products")->raw(function($collection) {
        global $var; 
        return $collection->aggregate([
                ['$lookup' => [
                    'from' => "{$var}_specifications",
                    'localField' => 'specifications_id',
                    'foreignField' => '_id',
                    'as' => 'specifications'
                ]]
            ]);
        });

我只找到了一个普通 SQL 的示例 ( https://fideloper.com/laravel-raw-queries )

$someVariable = Input::get("some_variable");
$results = DB::select( DB::raw("SELECT * FROM some_table WHERE some_col = :somevariable"), array(
   'somevariable' => $someVariable,
 ));

最佳答案

像这样在函数闭包中使用变量

$var = 'example';
$res = DB::collection("{$var}_products")->raw(function($collection) use ($var) {
        return $collection->aggregate([
                ['$lookup' => [
                    'from' => "{$var}_specifications",
                    'localField' => 'specifications_id',
                    'foreignField' => '_id',
                    'as' => 'specifications'
                ]]
            ]);
        });

关于php - Laravel mongodb 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58034522/

相关文章:

php - 将变量连接到 $_POST[]

php - mysql查询问题: fetch latest posts

java - 从字符串到 MongoDB ObjectID 的转换

node.js - 为什么我的引用文献不填充文档?

mongodb - 在 Spark 中连接到 mongodb 时出现异常

php - 如何存储设置

php - 找不到 Laravel 类 'navigation'

php - 如何使用 Mongodb 运行 laravel Homestead?

laravel - 在集合中使用 orWhere()

php - Laravel:验证表单中输入的名称