【发布时间】:2016-07-26 01:35:32
【问题描述】:
给定以下集合:
[
{
name: User1
metadata: [
{k:"score", v: 5},
{k:"other", v: 10}
]
},
{
name: User2
metadata: [
{k:"score", v: 1},
{k:"other", v: 1}
]
},
{
name: User3
metadata: [
{k:"score", v: 2},
{k:"other", v: 0}
]
}
]
如何按“分数”对这些项目进行排序?我可以按 metadata.v 字段排序,但我不确定如何只考虑匹配“k”的子文档的“v”值:“score”
预期的输出是:
[
{
name: User2
metadata: [
{k:"score", v: 1},
{k:"other", v: 1}
]
},
{
name: User3
metadata: [
{k:"score", v: 2},
{k:"other", v: 0}
]
},
{
name: User1
metadata: [
{k:"score", v: 5},
{k:"other", v: 10}
]
}
]
【问题讨论】:
-
不清楚你在这里问什么。请考虑将预期的输出添加到您的问题中。
-
您的结果中是否需要其他
metadata元素(例如k:"other"元素)? -
@JohnnyHK 是的,我想要文档中的所有数据。
-
@JohnnyHK 是否仍然可以使用展开匹配来扩充文档,但也可以返回完整文档?
标签: mongodb