Handle both bson.D and bson.M on Find results

This commit is contained in:
George Suntres
2026-04-20 13:08:13 -04:00
parent 29144f54bd
commit 1547f8c736
4 changed files with 24 additions and 11 deletions

20
find.go
View File

@@ -60,8 +60,14 @@ func (c *MongoClient) Find(ctx context.Context, database, name string, filter bs
var totalValue any
if len(metadata) != 0 {
metadataRoot := metadata[0].(bson.D)
totalValue, _ = commons.BsonDGetAny(metadataRoot, "total")
switch metadata[0].(type) {
case bson.D:
metadataRoot := metadata[0].(bson.D)
totalValue, _ = commons.BsonDGetAny(metadataRoot, "total")
case bson.M:
metadataRoot := metadata[0].(bson.M)
totalValue = metadataRoot["total"]
}
}
var total int64
@@ -148,8 +154,14 @@ func (c *MongoClient) FindOffset(ctx context.Context, database, name string, fil
var totalValue any
if len(metadata) != 0 {
metadataRoot := metadata[0].(bson.D)
totalValue, _ = commons.BsonDGetAny(metadataRoot, "total")
switch metadata[0].(type) {
case bson.D:
metadataRoot := metadata[0].(bson.D)
totalValue, _ = commons.BsonDGetAny(metadataRoot, "total")
case bson.M:
metadataRoot := metadata[0].(bson.M)
totalValue = metadataRoot["total"]
}
}
var total int64