aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/filer/mongodb/mongodb_store.go20
1 files 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)