我正在开发应用程序,我必须存储工作周计划。
workSchedule
由7天(数组)组成,每天包含数组,此数组包含另一个数组,其中我存储startTime和endTime,从午夜开始。
我尝试了List<List<Integer[]>> workSchedule
使用List<List<List<Integer>>> workSchedule
使用Integer[][][] workSchedule
但没有任何效果。通常会说BasicBSONList can only work with numeric keys
如何构建正确的模型?请,任何建议。
更新。
在mongodb的模型下面。
{
"_id": {
"$oid": "579dfa208f9c311d327e478a"
},
"status": "approved",
"ratingMinus": 0,
"ratingPlus": 0,
"lat": 55.767166134693,
"lng": 37.59573578997,
"address": "Большая Садовая улица, дом 16, сооружение 1",
"type": "public",
"price": 0,
"isFree": true,
"workSchedule": [
[
[
28800,
72000
]
],
[
[
28800,
72000
]
],
[
[
28800,
72000
]
],
[
[
28800,
72000
]
],
[
[
28800,
72000
]
],
[
[
28800,
72000
]
],
[
[
28800,
72000
]
]
],
"updatedAt": {
"$date": "2016-07-31T13:16:16.454Z"
},
"createdAt": {
"$date": "2016-07-31T13:16:16.454Z"
},
"__v": 0,
"location": [
37.59573578997,
55.767166134693
]
}
这里有JAVA属性:
@Id
private ObjectId id;
private String status;
private int ratingMinus;
private int ratingPlus;
private String address;
@Reference
private WcUser createdBy;
@Reference
private WcUser updatedBy;
private Date createdAt;
private Date updatedAt;
private String routeDetails;
private String type;
private List<List<List<Integer>>> workSchedule;
private boolean isFree;
private int price;
@Indexed(IndexDirection.GEO2D)
private Double[] location;
我尝试从mongo获取数据如下:
List<WcInstance> wcs = mongoConnectionManager
.getDatastore()
.find(WcInstance.class)
.field("location")
.near(longitude, latitude, 3 / 111.12)
.limit(100)
.asList();
如果我评论workSchedule
属性,它就有效,如果没有,则无效。
错误:
java.lang.RuntimeException: java.lang.IllegalArgumentException: BasicBSONList can only work with numeric keys, not: [size]
答案 0 :(得分:0)
List<List<List<Integer>>> workSchedule
应该有效。请发布实际的模型类以及您尝试使用它的方式。你可能缺少一些细微差别。