diff --git a/src/Jenssegers/Mongodb/Query/Builder.php b/src/Jenssegers/Mongodb/Query/Builder.php index 558edbdf3..b2e1daf33 100644 --- a/src/Jenssegers/Mongodb/Query/Builder.php +++ b/src/Jenssegers/Mongodb/Query/Builder.php @@ -700,7 +700,11 @@ public function from($collection, $as = null) */ public function truncate() { - $result = $this->collection->drop(); + $options = [ + 'typeMap' => ['root' => 'object', 'document' => 'object'], + ]; + + $result = $this->collection->drop($options); return (1 == (int) $result->ok); } diff --git a/tests/ModelTest.php b/tests/ModelTest.php index 108d28554..e998cade6 100644 --- a/tests/ModelTest.php +++ b/tests/ModelTest.php @@ -572,4 +572,13 @@ public function testChunkById(): void $this->assertEquals(3, $count); } + + public function testTruncateModel() + { + User::create(['name' => 'John Doe']); + + User::truncate(); + + $this->assertEquals(0, User::count()); + } } diff --git a/tests/QueryBuilderTest.php b/tests/QueryBuilderTest.php index 625e59cad..3306ede29 100644 --- a/tests/QueryBuilderTest.php +++ b/tests/QueryBuilderTest.php @@ -175,7 +175,8 @@ public function testDelete() public function testTruncate() { DB::collection('users')->insert(['name' => 'John Doe']); - DB::collection('users')->truncate(); + $result = DB::collection('users')->truncate(); + $this->assertEquals(1, $result); $this->assertEquals(0, DB::collection('users')->count()); }