node.js + mongodb排序嵌套数组不起作用

阿什拉夫

我无法对嵌套数组进行排序。我已经提到了许多链接,例如链接1,但仍然没有针对我的问题的适当解决方案。

这是我的JSON数据:

{
  _id: "5a8bf7e3903cc83237ebd014",
  prospect_name: "Akruthi",
  phone: "9878979879",
  email: "",
  address: "Kundapur",
  landmark: "Grt",
  city: "Udupi",
  state: "5a869c795eb34ecae3ab1ef6",
  region: "5a8689725eb34ecae3ab1ede",
  methodology: 2,
  sub_category: "colour",
  created_by: "asdadasad",
  referred_by: "Self",
  remarks: [
          {
            data: "Good",
            user: "5a8c0642903cc83237ebd01f",
            created_at: "2018-02-20T10:26:43.686Z",
            remarksId: "5a8bf7e3903cc83237ebd013",
          },
          {
            data: "test 1",
            user: "5a858129e6e8f6724d6aa551",
            created_at: "2018-02-21T04:35:30.615Z",
            remarksId: "5a8cf7122ad6f00da98a3f05",
          },
          {
            data: "test 2",
            user: "5a858129e6e8f6724d6aa551",
            created_at: "2018-02-21T04:41:45.514Z",
            remarksId: "5a8cf889160046121e3f1b25",
          },
          {
            data: "test 3",
            user: "5a858129e6e8f6724d6aa551",
            created_at: "2018-02-21T04:54:01.018Z",
            remarksId: "5a8cfb69ea4e7c14c1f7c550",
          },
         ],
  created_at: "2018-02-20T10:26:43.686Z"
}

我已经在node.js中执行以下查询:

return collection_name
 .aggregate([
                { $match: { _id: objectid(id) } },
                { $lookup: { from: 'state', localField: 'state', foreignField: '_id', as: 'state_details' } },
                { $lookup: { from: 'region', localField: 'region', foreignField: '_id', as: 'region_details' } },
                { $lookup: { from: 'users', localField: 'remarks.user', foreignField: '_id', as: 'remarks_details' } },
                { $unwind: '$remarks' },
                { $sort: { 'remarks.created_at': -1 } },
                { $group: { _id: '$_id', remarks: { $push: '$remarks' } } },
            ])

我得到的结果是:(得到排序的结果,但丢失了其他字段)

{
 _id: "5a8bf7e3903cc83237ebd014",
 remarks: [
        {
          data: "test 3",
          user: "5a858129e6e8f6724d6aa551",
          created_at: "2018-02-21T04:54:01.018Z",
          remarksId: "5a8cfb69ea4e7c14c1f7c550"
        },
        {
          data: "test 2",
          user: "5a858129e6e8f6724d6aa551",
          created_at: "2018-02-21T04:41:45.514Z",
          remarksId: "5a8cf889160046121e3f1b25"
        },
        {
          data: "test 1",
          user: "5a858129e6e8f6724d6aa551",
          created_at: "2018-02-21T04:35:30.615Z",
          remarksId: "5a8cf7122ad6f00da98a3f05"
        },
        {
          data: "Good",
          user: "5a8c0642903cc83237ebd01f",
          created_at: "2018-02-20T10:26:43.686Z",
          remarksId: "5a8bf7e3903cc83237ebd013"
        }
         ]
}

结果我失去了除备注以外的所有其他领域我也希望将结果与其他字段一起使用。.我尝试了$project操作,但仍然没有用。

预期结果:

    {
  _id: "5a8bf7e3903cc83237ebd014",
  prospect_name: "Akruthi",
  phone: "9878979879",
  email: "",
  address: "Kundapur",
  landmark: "Grt",
  city: "Udupi",
  state: "5a869c795eb34ecae3ab1ef6",
  region: "5a8689725eb34ecae3ab1ede",
  methodology: 2,
  sub_category: "colour",
  created_by: "asdadasad",
  referred_by: "Self",
  remarks: [
          {
          data: "test 3",
          user: "5a858129e6e8f6724d6aa551",
          created_at: "2018-02-21T04:54:01.018Z",
          remarksId: "5a8cfb69ea4e7c14c1f7c550"
        },
        {
          data: "test 2",
          user: "5a858129e6e8f6724d6aa551",
          created_at: "2018-02-21T04:41:45.514Z",
          remarksId: "5a8cf889160046121e3f1b25"
        },
        {
          data: "test 1",
          user: "5a858129e6e8f6724d6aa551",
          created_at: "2018-02-21T04:35:30.615Z",
          remarksId: "5a8cf7122ad6f00da98a3f05"
        },
        {
          data: "Good",
          user: "5a8c0642903cc83237ebd01f",
          created_at: "2018-02-20T10:26:43.686Z",
          remarksId: "5a8bf7e3903cc83237ebd013"
        }
         ],
  created_at: "2018-02-20T10:26:43.686Z"
}
ilankumaran k ilankumaran k

添加
{$ project:{潜在客户名称:1,电话:1,电子邮件:1,地址:1,地标:1,城市:1,州:1,区域:1,方法:1,子类别:1,created_by:1, Refered_by:1}},并用以下行{$ group:{_id:null,备注:{$ push:'$ remarks'}}}来替换您的组

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章