From 5d8a391b956cb981b273e73e41093c679f9a2085 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Mon, 16 Jun 2025 14:21:05 -0700 Subject: [PATCH] filer store: fix nil for mongodb (#6886) fix https://github.com/seaweedfs/seaweedfs/issues/6885 --- weed/filer/mongodb/mongodb_store.go | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/weed/filer/mongodb/mongodb_store.go b/weed/filer/mongodb/mongodb_store.go index c05ed20f0..3565e5e93 100644 --- a/weed/filer/mongodb/mongodb_store.go +++ b/weed/filer/mongodb/mongodb_store.go @@ -234,16 +234,24 @@ func (store *MongodbStore) ListDirectoryPrefixedEntries(ctx context.Context, dir "directory": string(dirPath), } + nameQuery := bson.M{} + if len(prefix) > 0 { - where["name"].(bson.M)["$regex"] = "^" + regexp.QuoteMeta(prefix) + nameQuery["$regex"] = "^" + regexp.QuoteMeta(prefix) } - if includeStartFile { - where["name"].(bson.M)["$gte"] = startFileName - } else { - where["name"].(bson.M)["$gt"] = startFileName + if len(startFileName) > 0 { + if includeStartFile { + nameQuery["$gte"] = startFileName + } else { + nameQuery["$gt"] = startFileName + } } - + + if len(nameQuery) > 0 { + where["name"] = nameQuery + } + optLimit := int64(limit) opts := &options.FindOptions{Limit: &optLimit, Sort: bson.M{"name": 1}} cur, err := store.connect.Database(store.database).Collection(store.collectionName).Find(ctx, where, opts)