再會。我有大量的下一個資訊集合(示例):
{
"_id" : ObjectId("1"),
"symbol" : "AUDHKD",
"digits" : 5,
"times" : {
"event_ts_utc" : ISODate("2021-10-17T23:59:59.405Z")
},
"prices" : {
"bid" : 5.76648,
"ask" : 5.76848
}
}
{
"_id" : ObjectId("2"),
"symbol" : "AUDSGD",
"digits" : 5,
"times" : {
"event_ts_utc" : ISODate("2021-10-17T23:59:59.406Z")
},
"prices" : {
"bid" : 0.99932,
"ask" : 1.00032
}
}
{
"_id" : ObjectId("3"),
"symbol" : "AUDSGD",
"digits" : 5,
"times" : {
"event_ts_utc" : ISODate("2021-10-17T23:59:59.618Z")
},
"prices" : {
"bid" : 0.99932,
"ask" : 1.00132
}
}
{
"_id" : ObjectId("4"),
"symbol" : "AUDHKD",
"digits" : 5,
"times" : {
"event_ts_utc" : ISODate("2021-10-17T23:59:59.720Z")
},
"prices" : {
"bid" : 5.76648,
"ask" : 5.76878
}
}
我需要為每個符號欄位獲取昨天的所有最后記錄。表示持續昨天日期的每個符號的 1 條記錄。因此,它必須回傳下一個 - 所有符號的日期為 2021-10-17 的最晚記錄:
{
"_id" : ObjectId("3"),
"symbol" : "AUDSGD",
"digits" : 5,
"times" : {
"event_ts_utc" : ISODate("2021-10-17T23:59:59.618Z")
},
"prices" : {
"bid" : 0.99932,
"ask" : 1.00132
}
}
{
"_id" : ObjectId("4"),
"symbol" : "AUDHKD",
"digits" : 5,
"times" : {
"event_ts_utc" : ISODate("2021-10-17T23:59:59.720Z")
},
"prices" : {
"bid" : 5.76648,
"ask" : 5.76878
}
}
請幫助創建正確的查詢 - idk 如何將所有要求放入 $aggregate .. 嘗試使用下一個鏈接解決此問題 https://docs.mongodb.com/v4.0/reference/method/db.collection.group/ https://docs.mongodb.com/manual/reference/operator/aggregation/group/ 但不明白如何在 1 個查詢中合并組、排序和限制(
PS:集合中的索引是:
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"symbol" : 1.0
},
"name" : "idx_symbol",
"background" : true
},
{
"v" : 2,
"key" : {
"times.event_ts_utc" : 1.0
},
"name" : "idx_times.event_ts_utc",
"background" : true
}
]
謝謝你。
uj5u.com熱心網友回復:
您可以在聚合管道中執行以下操作:
$match到您選擇的日期范圍$sort經過"times.event_ts_utc": -1$group通過$symbol獲取$first檔案,這是最新的記錄- 回到預期的形式
db.collection.aggregate([
{
"$match": {
"times.event_ts_utc": {
$lt: ISODate("2021-10-18")
}
}
},
{
$sort: {
"times.event_ts_utc": -1
}
},
{
$group: {
_id: "$symbol",
latest: {
$first: "$$ROOT"
}
}
},
{
"$replaceRoot": {
"newRoot": "$latest"
}
}
])
這是Mongo 游樂場供您參考。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/354246.html
標籤:MongoDB
