MongoTest.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace Units;
  3. use App\Model\Mongo\HotelLogModel;
  4. use HyperfTest\HttpTestCase;
  5. use Zhuzhichao\IpLocationZh\Ip;
  6. class MongoTest extends HttpTestCase
  7. {
  8. protected function setUp():void
  9. {
  10. parent::setUp();
  11. }
  12. protected function tearDown():void
  13. {
  14. parent::tearDown();
  15. }
  16. public function testAggregateLimit()
  17. {
  18. $pipeline = [
  19. [
  20. '$match' => [
  21. 'ct_type' => 'ID'
  22. ],
  23. ],
  24. [
  25. '$group' => [
  26. '_id' => '$ct_fid',
  27. 'no' => [
  28. '$first' => '$ct_fid'
  29. ],
  30. 'list_items' => [
  31. '$push' => '$username',
  32. ],
  33. 'username' => [
  34. '$first' => '$username'
  35. ],
  36. 'gender' => [
  37. '$first' => '$gender'
  38. ],
  39. ],
  40. ],
  41. [
  42. '$sort' => [
  43. '_id' => -1
  44. ],
  45. ],
  46. [
  47. '$limit' => 20,
  48. ],
  49. ];
  50. $options = [];
  51. /**
  52. * @var \MongoDB\Driver\Cursor $cursor
  53. */
  54. $cursor = make(HotelLogModel::class)->db()->aggregate($pipeline, $options);
  55. foreach ($cursor as $v) {
  56. var_dump($v);
  57. }
  58. $this->assertTrue(true);
  59. }
  60. public function testGetIpAddr()
  61. {
  62. $arrIps = [
  63. '113.16.131.73',
  64. '203.168.7.172',
  65. '180.142.72.108',
  66. '117.150.69.80',
  67. ];
  68. foreach ($arrIps as $ip) {
  69. $arrIpAddr = Ip::find($ip);
  70. array_pop($arrIpAddr); //剔除最后一个下标, 国标
  71. $arrIpAddr = array_filter($arrIpAddr);
  72. $ipAddr = !empty($arrIpAddr) ? implode('|', $arrIpAddr) : '';
  73. var_dump($ipAddr);
  74. }
  75. $this->assertTrue(true);
  76. }
  77. public function testA1()
  78. {
  79. $str = 'a:2:{i:0;a:16:{s:2:"id";i:12;s:8:"position";s:10:"video_home";s:5:"title";s:46:"抖窥短视频-你手中的偷拍最强抖音";s:5:"cover";s:26:"f1|/f1/535535/U3zB1GC3.ceb";s:10:"start_time";N;s:8:"end_time";N;s:5:"click";i:0;s:4:"sort";i:1000;s:4:"link";s:35:"https://dk8.in/?channel_code=zbmamb";s:6:"scheme";s:6:"url://";s:6:"status";i:1;s:4:"type";i:2;s:4:"ply2";s:0:"";s:10:"created_at";s:19:"2022-02-25 05:14:15";s:10:"updated_at";s:19:"2022-02-25 05:55:11";s:10:"deleted_at";N;}i:1;a:16:{s:2:"id";i:13;s:8:"position";s:10:"video_home";s:5:"title";s:46:"抖窥短视频-你手中的偷拍最强抖音";s:5:"cover";s:26:"f1|/f1/535535/U3zB1GC3.ceb";s:10:"start_time";N;s:8:"end_time";N;s:5:"click";i:0;s:4:"sort";i:1000;s:4:"link";s:35:"https://dk8.in/?channel_code=zbmamb";s:6:"scheme";s:6:"url://";s:6:"status";i:1;s:4:"type";i:2;s:4:"play";s:1:"1";s:10:"created_at";s:19:"2022-02-25 05:14:16";s:10:"updated_at";s:19:"2022-02-25 05:14:16";s:10:"deleted_at";N;}}';
  80. $arr = unserialize($str);
  81. var_dump($arr);
  82. $this->assertTrue(true);
  83. }
  84. }