【发布时间】:2021-04-28 14:00:55
【问题描述】:
我正在尝试编写一个 Mongodb 查询来根据 upvotes 数组的长度对答案进行排序。有更多赞成票的答案应该排在第一位。谁能帮我查询一下?
这是我的收藏对象:
{
"_id": {
"$oid": "607fcba8a6b6db2830060a2b"
},
"userID": {
"$oid": "60782e1d4709d515c0684c45"
},
"title": "que3",
"description": "text message",
"crowdID": "6042142f5a6e0d1d7e694534",
"userType": "Professional",
"answers": [
{
"_id": {
"$oid": "607fcbb5a6b6db2830060a2d"
},
"userID": {
"$oid": "60782e004709d515c0684c44"
},
"body": "que6",
"comments": [],
"date": {
"$date": "2021-04-21T06:52:37.906Z"
},
"upvotes": []
},
{
"_id": {
"$oid": "607fcbb6a6b6db2830060a2f"
},
"userID": {
"$oid": "60782e004709d515c0684c44"
},
"body": "que6",
"comments": [],
"date": {
"$date": "2021-04-21T06:52:38.706Z"
},
"upvotes": [
{
"_id": {
"$oid": "607fcbefa6b6db2830060a31"
},
"userID": {
"$oid": "607933e4d281292298c99025"
},
"date": {
"$date": "2021-04-21T06:53:35.115Z"
}
},
{
"_id": {
"$oid": "607fcc01a6b6db2830060a33"
},
"userID": {
"$oid": "60782e1d4709d515c0684c45"
},
"date": {
"$date": "2021-04-21T06:53:53.641Z"
}
}
]
},
{
"_id": {
"$oid": "607fcc14a6b6db2830060a35"
},
"userID": {
"$oid": "60782e004709d515c0684c44"
},
"body": "que6",
"comments": [],
"date": {
"$date": "2021-04-21T06:54:12.492Z"
},
"upvotes": []
},
{
"_id": {
"$oid": "607fcc15a6b6db2830060a37"
},
"userID": {
"$oid": "60782e004709d515c0684c44"
},
"body": "que6",
"comments": [],
"date": {
"$date": "2021-04-21T06:54:13.149Z"
},
"upvotes": []
}
],
"date": {
"$date": "2021-04-21T06:52:24.964Z"
},
"__v": 4
【问题讨论】:
-
可以通过聚合来完成。类似的问题在这里问:stackoverflow.com/questions/17988585/…
-
这能回答你的问题吗? Do $sort works for sub array document
标签: mongodb mongoose mongodb-query aggregation-framework mongoose-schema