-
Notifications
You must be signed in to change notification settings - Fork 1.4k
/
Copy pathDistinctTest.php
70 lines (60 loc) · 1.7 KB
/
DistinctTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
declare(strict_types=1);
namespace App\Http\Controllers;
use App\Models\Movie;
use Illuminate\Support\Facades\DB;
use MongoDB\Laravel\Tests\TestCase;
class DistinctTest extends TestCase
{
/**
* @runInSeparateProcess
* @preserveGlobalState disabled
*/
public function testDistinct(): void
{
require_once __DIR__ . '/Movie.php';
Movie::truncate();
Movie::insert([
[
'title' => 'Marie Antoinette',
'directors' => ['Sofia Coppola'],
'imdb' => [
'rating' => 6.4,
'votes' => 74350,
],
],
[
'title' => 'Somewhere',
'directors' => ['Sofia Coppola'],
'imdb' => [
'rating' => 6.4,
'votes' => 33753,
],
],
[
'title' => 'Lost in Translation',
'directors' => ['Sofia Coppola'],
'imdb' => [
'rating' => 7.8,
'votes' => 298747,
],
],
]);
// begin-eloquent-distinct
$ratings = Movie::where('directors', 'Sofia Coppola')
->select('imdb.rating')
->distinct()
->get();
echo $ratings;
// end-eloquent-distinct
// begin-qb-distinct
$ratings = DB::table('movies')
->where('directors', 'Sofia Coppola')
->select('imdb.rating')
->distinct()
->get();
echo $ratings;
// end-qb-distinct
$this->expectOutputString('[[6.4],[7.8]][6.4,7.8]');
}
}