首页 > 解决方案 > 对对象 mongodb laravel 中的数组进行排序

问题描述

我有这个对象,我想通过它 created_at 对 Demo2 进行排序。我正在使用 mongodb 作为 db laravel php

Demo": {
    "Demo2": [
    { 
    "type": "review",       
    "created_at": "1970-01-01 05:30:00"
    },
    {
    "type": "store",        
    "created_at": "2019-04-16 6:22:30"
    },
    {
    "type": "postw",        
    "created_at": "2019-04-16 16:23:10"
   }

  ],

}

我如何通过 laravel mongodb 查询来实现这一点。

标签: laravelmongodb

解决方案


  1. 您需要使用聚合框架来完成这项工作

     db.test.aggregate( [
      { $unwind: "$Demo.Demo2" },
      { $sort: { 'Demo.Demo2.created_at': -1}},
      {$group : {"_id": "1", "Demo2": {"$push": "$Demo.Demo2"}}}
      ]
    )
    


推荐阅读