Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB列出Go中具有给定前缀的数据库 问题:_Mongodb_Go_Mongo Go - Fatal编程技术网

MongoDB列出Go中具有给定前缀的数据库 问题:

MongoDB列出Go中具有给定前缀的数据库 问题:,mongodb,go,mongo-go,Mongodb,Go,Mongo Go,如何仅列出具有给定前缀(前缀)的数据库 例子: 主程序包 进口( “上下文” “fmt” “go.mongodb.org/mongo-driver/bson” “go.mongodb.org/mongo-driver/mongo” “go.mongodb.org/mongo-driver/mongo/options” “日志” ) 类型foo struct{ 值字符串 } func main(){ clientOptions:=options.Client().ApplyURI(“mongodb

如何仅列出具有给定前缀(
前缀
)的数据库

例子:
主程序包
进口(
“上下文”
“fmt”
“go.mongodb.org/mongo-driver/bson”
“go.mongodb.org/mongo-driver/mongo”
“go.mongodb.org/mongo-driver/mongo/options”
“日志”
)
类型foo struct{
值字符串
}
func main(){
clientOptions:=options.Client().ApplyURI(“mongodb://10.0.12.76:27018")
客户端,错误:=mongo.Connect(context.TODO(),clientOptions)
如果错误!=零{
log.Fatal(错误)
}
db:=[3]字符串{“prefix\u foo”、“prefix\u bar”、“bar”}
对于u,元素:=范围db{
_,err:=client.Database(element.Collection(“占位符”).InsertOne(context.TODO(),foo{“sth”})
如果错误!=零{
log.Fatal(错误)
}
}
筛选器:=bson.D{}
dbs,err:=client.ListDatabaseNames(context.TODO(),filter)
如果错误!=零{
log.Fatal(错误)
}
fmt.Printf(“%+v\n”,dbs)
}
输出:
[管理条配置本地前缀\u条前缀\u foo]

预期产出:
[prefix\u bar prefix\u foo]

奖金:
  • 在我的例子中,不定义新的
    struct
    就可以创建数据库
    foo
  • 我的目标是只在带有前缀的数据库上运行查询,所以可能存在比列出dbs然后在每个数据库上运行查询更好的解决方案

  • 只需按表示数据库名称的
    name
    属性进行筛选。要列出以给定前缀开头的数据库,您可以使用regexp作为
    ^prefix\

    filter := bson.M{"name": primitive.Regex{Pattern: "^prefix_"}}
    
    页面上列出了其他过滤器选项:

    您可以在
    listDatabases
    的输出中的任何字段上指定条件:

    • name
    • sizenodisk
    • empty
    • 碎片

    您可以使用一个空的
    bson.M{}
    插入一个空文档(
    \u id
    当然会被添加)。

    尝试
    bson.D{“name”,primitive.Regex{模式:“^”+前缀+“*”,选项:“i}}}
    ,或者
    bson.D{“name”,bson.D{$Regex,“^”+前缀+“*”{,“$Options”,“i}}}}
    。谢谢,我确信我尝试过类似的东西。无论如何,我如何列出所有属性以用于搜索?