1
阵列内找到我有使用以下结构创建文档的schemea:MongoDB的聚集,值
{
"_id" : "2014-07-16:52TEST",
"date" : ISODate("2014-07-16T23:52:59.811Z"),
"name" : "TEST"
"values" : [
[
1405471921000,
0.737121
],
[
1405471922000,
0.737142
],
[
1405471923000,
0.737142
],
[
1405471924000,
0.737142
]
]
}
在值,第一个指数是一个时间戳。我想要做的是查询特定的时间戳找到最接近的值($gte
)。
我已经试过以下汇总查询:
[
{ "$match": {
"values": {
"$elemMatch": { "0": {"$gte": 1405471923000} }
},
"name" : 'TEST'
}},
{ "$project" : {
"name" : 1,
"values" : 1
}},
{ "$unwind": "$values" },
{ "$match": { "values.0": { "$gte": 1405471923000 } } },
{ "$limit" : 1 },
{ "$sort": { "values.0": -1 } },
{ "$group": {
"_id": "$name",
"values": { "$push": "$values" },
}}
]
这似乎是工作,但它不拉最接近的值。它似乎拉大了或大于或等于排序似乎没有得到应用,所以它会拉一个时间戳,在未来很远。
任何建议将是伟大的!
谢谢