【发布时间】:2020-10-15 14:06:14
【问题描述】:
我正在使用 Mongo 聚合/过滤/排序并使用 JAVA 进行限制。
我有以下模型对象。 CustomPOJO 是我的数据库集合。
@Document(collation = "CustomPOJO")
public class CustomPOJO {
public List<KeyValueObject> valueList;
public String attribute1;
public String attribute2;
public CustomObject attribute3;
}
public class CustomObject {
public String attribute4;
public String attribute5;
}
public class KeyValueObject {
public String name;
public String value;
}
现在我的数据库中有以下记录的条目
记录1:
{
"valueList": [{
"name": "field1",
"value": "value1"
}, {
"name": "field2",
"value": "value2"
}, {
"name": "field3",
"value": "value3"
}],
"attribute1": "attribute1",
"attribute2": "attribute2",
"attribute3": {
"attribute4": "attribute4",
"attribute5": "attribute5"
}
}
记录2:
{
"valueList": [{
"name": "field1",
"value": "value4"
}, {
"name": "field2",
"value": "value5"
}, {
"name": "field3",
"value": "value6"
}],
"attribute1": "attribute11",
"attribute2": "attribute22",
"attribute3": {
"attribute4": "attribute44",
"attribute5": "attribute55"
}
}
我可以使用 sort(DESC,"attribute1") 或 sort(DESC,"attribute3.attribute4") 或 sort(DESC,"attribute2") 对所有字段进行排序。但我无法对 valueList 进行排序。我想根据 valueList 中的特定 KeyValue 条目进行排序。
例如,record1 的 valueList 包含条目 field1,因此 DB 中的所有记录都应根据 field1 和其中的值进行排序。
一般来说,我想对列表属性内的字段进行排序。
任何帮助将不胜感激。
【问题讨论】:
标签: java mongodb sorting mongo-java-driver