mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-11-04 19:32:17 +08:00
Translate Chinese comments into English.
This commit is contained in:
parent
376a549aef
commit
ddda8e950c
@ -205,7 +205,7 @@ func (m *MsgMgo) GetMsgDocModelByIndex(ctx context.Context, conversationID strin
|
||||
return nil, errs.ErrArgs.WrapMsg("mongo sort must be 1 or -1")
|
||||
}
|
||||
|
||||
// 构建聚合管道
|
||||
// parepare pipeline
|
||||
pipeline := mongo.Pipeline{
|
||||
{{
|
||||
"$match", bson.D{
|
||||
@ -215,11 +215,11 @@ func (m *MsgMgo) GetMsgDocModelByIndex(ctx context.Context, conversationID strin
|
||||
{{
|
||||
"$project", bson.M{
|
||||
"doc_id": 1,
|
||||
"seqSuffix": bson.M{ // 创建一个新字段来存储转换后的 seqSuffix 整数
|
||||
"$toInt": bson.M{ // $toInt 表达式
|
||||
"$arrayElemAt": bson.A{ // $arrayElemAt 需要一个数组作为第一个参数
|
||||
bson.M{"$split": []interface{}{"$doc_id", ":"}}, // $split 表达式
|
||||
-1, // 索引,取数组的最后一个元素
|
||||
"seqSuffix": bson.M{ // Create a new field to store the converted seqSuffix integer.
|
||||
"$toInt": bson.M{ // $toInt expression
|
||||
"$arrayElemAt": bson.A{ // $arrayElemAt requires an array as the first argument.
|
||||
bson.M{"$split": []interface{}{"$doc_id", ":"}}, // $split expression
|
||||
-1, // Indexing, to take the last element of the array.
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -227,23 +227,23 @@ func (m *MsgMgo) GetMsgDocModelByIndex(ctx context.Context, conversationID strin
|
||||
},
|
||||
}},
|
||||
{{
|
||||
"$sort", bson.D{ // 按 seqSuffix 排序
|
||||
"$sort", bson.D{ // Sort by seqSuffix.
|
||||
{"seqSuffix", sort},
|
||||
},
|
||||
}},
|
||||
}
|
||||
|
||||
// 如果需要分页,可以在这里添加逻辑来动态地修改 pipeline
|
||||
// If pagination is needed, logic can be added here to dynamically modify the pipeline.
|
||||
if index > 0 {
|
||||
pipeline = append(pipeline, bson.D{{
|
||||
"$skip", index,
|
||||
}})
|
||||
}
|
||||
pipeline = append(pipeline, bson.D{{
|
||||
"$limit", 1, // 我们只需要一个文档
|
||||
"$limit", 1, // We only need one document.
|
||||
}})
|
||||
|
||||
// 执行聚合查询
|
||||
// Execute an aggregation query.
|
||||
msgs, err := mongoutil.Aggregate[*model.MsgDocModel](ctx, m.coll, pipeline)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user