如何使用节点 js 对 mongoDB 中的集合内的数组进行排序
Posted
技术标签:
【中文标题】如何使用节点 js 对 mongoDB 中的集合内的数组进行排序【英文标题】:how to sort array inside collection in mongoDB using node js 【发布时间】:2020-06-29 10:47:32 【问题描述】:我有一个查询集合,存储在记录中的数据如下所示。我想根据数组中的 id 或日期按降序排序
[
"_id": "5e71fa3ab004192b349e4a06",
"QUERIES": [
"_id": "5e71fa3ab004192b349e4a07",
"QUERY": "1",
"USER_ID": "5e6f1c5b8451307f782d0994",
"USER_NAME": "a2",
"createdAt": "2020-03-18T10:38:50.247Z"
,
"_id": "5e71fa46b004192b349e4a08",
"QUERY": "2",
"USER_ID": "5e6f1c5b8451307f782d0994",
"USER_NAME": "a1",
"createdAt": "2020-03-18T10:39:02.451Z"
],
"TICKET_ID": "5e70f4fa47df9479502f7937"
]
预期输出
[
"_id": "5e71fa3ab004192b349e4a06",
"QUERIES": [
"_id": "5e71fa46b004192b349e4a08",
"QUERY": "2",
"USER_ID": "5e6f1c5b8451307f782d0994",
"USER_NAME": "a1",
"createdAt": "2020-03-18T10:39:02.451Z"
,
"_id": "5e71fa3ab004192b349e4a07",
"QUERY": "1",
"USER_ID": "5e6f1c5b8451307f782d0994",
"USER_NAME": "a2",
"createdAt": "2020-03-18T10:38:50.247Z"
],
"TICKET_ID": "5e70f4fa47df9479502f7937"
]
【问题讨论】:
你是直接使用MongoDB还是Mongoose之类的? 见这里:***.com/questions/54366459/…。这就是你想要的吗? 使用mongoose
处理 MongoDB 操作
我给你指出的问题是你想要什么?
我想要获取预期输出的 mongoDB 查询代码,问题中已经提到了
【参考方案1】:
使用这个:
db.collection.aggregate([
$unwind: "$QUERIES" ,
$sort: "QUERIES.createdAt": -1 ,
$group:
_id: _id: "$_id", TICKET_ID: "$TICKET_ID" ,
QUERIES: $push: "$QUERIES"
,
$replaceRoot: newRoot: $mergeObjects: ["$$ROOT", "$_id"]
])
Mongo playground
【讨论】:
谢谢@Wernfried Domscheit以上是关于如何使用节点 js 对 mongoDB 中的集合内的数组进行排序的主要内容,如果未能解决你的问题,请参考以下文章
如何从 mongodb 获取数据并使用节点 js 将其显示在表中?