如何使用 MongoDB 通过 RunCommand 调用 dbHash?
How to call dbHash with RunCommand using MongoDB?
使用 Go 的 MongoDB 驱动程序 我想使用 RunCommand
执行 dbHash
命令。我对应该用于 RunCommand
的“键”和“值”对感到困惑。需要注意的一件事:我想将一个特定的集合名称传递给散列,在此示例中表示为 collection
。例如,这就是我现在拥有的:db.RunCommand(context.Background(), bson.D{primitive.E{Key: "dbHash: 1", Value: fmt.Sprintf("collections: %s", collection}})
。请让我知道我应该如何实现它。
参考资料:
https://docs.mongodb.com/manual/reference/command/dbHash/
https://docs.mongodb.com/manual/reference/method/db.runCommand/
bson.D
represents a document, it is an ordered collection of properties represented by bson.E
,这是一个包含 属性 名称和值的简单结构:
type E struct {
Key string
Value interface{}
}
命令的每个字段都必须是 bson.D
文档中的一个元素。命令中的 collections
字段必须是一个数组,在您的例子中它将包含一个元素。在 Go 中,您可以对这样的数组使用切片。
那么让我们创建命令文档:
cmd := bson.D{
bson.E{Key: "dbHash", Value: 1},
bson.E{Key: "collections", Value: []string{collection}},
}
注意:您可以省略元素中的 bson.E
类型,它是根据 bson.D
的类型推断的:
cmd := bson.D{
{Key: "dbHash", Value: 1},
{Key: "collections", Value: []string{collection}},
}
让我们执行此命令,在 bson.M
映射中捕获结果文档:
var result bson.M
if err := db.RunCommand(context.Background(), cmd).Decode(&result); err != nil {
log.Printf("RunCommand failed: %v", err)
}
fmt.Println(result)
使用 Go 的 MongoDB 驱动程序 我想使用 RunCommand
执行 dbHash
命令。我对应该用于 RunCommand
的“键”和“值”对感到困惑。需要注意的一件事:我想将一个特定的集合名称传递给散列,在此示例中表示为 collection
。例如,这就是我现在拥有的:db.RunCommand(context.Background(), bson.D{primitive.E{Key: "dbHash: 1", Value: fmt.Sprintf("collections: %s", collection}})
。请让我知道我应该如何实现它。
参考资料: https://docs.mongodb.com/manual/reference/command/dbHash/ https://docs.mongodb.com/manual/reference/method/db.runCommand/
bson.D
represents a document, it is an ordered collection of properties represented by bson.E
,这是一个包含 属性 名称和值的简单结构:
type E struct {
Key string
Value interface{}
}
命令的每个字段都必须是 bson.D
文档中的一个元素。命令中的 collections
字段必须是一个数组,在您的例子中它将包含一个元素。在 Go 中,您可以对这样的数组使用切片。
那么让我们创建命令文档:
cmd := bson.D{
bson.E{Key: "dbHash", Value: 1},
bson.E{Key: "collections", Value: []string{collection}},
}
注意:您可以省略元素中的 bson.E
类型,它是根据 bson.D
的类型推断的:
cmd := bson.D{
{Key: "dbHash", Value: 1},
{Key: "collections", Value: []string{collection}},
}
让我们执行此命令,在 bson.M
映射中捕获结果文档:
var result bson.M
if err := db.RunCommand(context.Background(), cmd).Decode(&result); err != nil {
log.Printf("RunCommand failed: %v", err)
}
fmt.Println(result)