我无法对嵌套数组进行排序。我已经提到了许多链接,例如链接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"
}
添加
{$ project:{潜在客户名称:1,电话:1,电子邮件:1,地址:1,地标:1,城市:1,州:1,区域:1,方法:1,子类别:1,created_by:1, Refered_by:1}},并用以下行{$ group:{_id:null,备注:{$ push:'$ remarks'}}}来替换您的组
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句