問題如何僅列出具有給定前綴 ( prefix_) 的數據庫?例子:package mainimport ( "context" "fmt" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" "log")type foo struct { Value string}func main() { clientOptions := options.Client().ApplyURI("mongodb://10.0.12.76:27018") client, err := mongo.Connect(context.TODO(), clientOptions) if err != nil { log.Fatal(err) } db := [3]string{"prefix_foo", "prefix_bar", "bar"} for _, element := range db { _, err := client.Database(element).Collection("placeholder").InsertOne(context.TODO(), foo{"sth"}) if err != nil { log.Fatal(err) } } filter := bson.D{{}} dbs, err := client.ListDatabaseNames(context.TODO(), filter) if err != nil { log.Fatal(err) } fmt.Printf("%+v\n", dbs)}輸出:[admin bar config local prefix_bar prefix_foo]預期輸出:[prefix_bar prefix_foo]獎金:struct在我的情況下,可以在不定義 new 的情況下創建數據庫嗎foo?我的目標是僅使用前綴對數據庫運行查詢,因此也許存在比列出數據庫然后對每個數據庫運行查詢更好的解決方案?
1 回答

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
name
只需按表示數據庫名稱的屬性進行過濾即可。要列出以給定前綴開頭的數據庫,您可以使用正則表達式^prefix_
:
filter?:=?bson.M{"name":?primitive.Regex{Pattern:?"^prefix_"}}
listDatabases
命令頁面上列出了其他過濾器選項:
您可以在以下輸出中的任何字段上指定條件
listDatabases
:
name
sizeOnDisk
empty
shards
并且您可以使用emptybson.M{}
來插入空文檔(_id
當然會添加)。
- 1 回答
- 0 關注
- 138 瀏覽
添加回答
舉報
0/150
提交
取消