gpt4 book ai didi

mongodb - 如何通过 mgo (golang) 创建散列索引

转载 作者:IT王子 更新时间:2023-10-29 01:54:21 29 4
gpt4 key购买 nike

如何使用 mgo 创建(或确保)散列索引包?

我需要一个 go 代码来等效于此:

>> db.collection.createIndex( { _id: "hashed" } )

我尝试过使用 runCommand,但只有 ‍createIndexes 命令需要一个 index specs 列表。我不知道那是什么以及如何创建索引规范

最佳答案

您可以按照 Collection.EnsureIndex 中的说明进行操作:

Other kinds of indexes are also supported through that API. Here is an example:

index := Index{
Key: []string{"$2d:loc"},
Bits: 26,
}
err := collection.EnsureIndex(index)

The example above requests the creation of a "2d" index for the "loc" field.

基本上,您的格式是 $<indexType>:<indexedField> ,如下图:

package main

import mgo "gopkg.in/mgo.v2"

const (
db = "so_hashed_idx"
coll = "testcoll"
)

func main() {
var s *mgo.Session
var err error

if s, err = mgo.Dial("127.0.0.1:27017"); err != nil {
panic(err)
}

// An index spec is nothing more than a fancy word for the keys
// or the key/value pairs handed over to the Key slice of the
// Index type.
idx := mgo.Index{
Key: []string{"$hashed:_id"},
}

if err := s.DB(db).C(coll).EnsureIndex(idx); err != nil {
panic(err)
}
}

so_hashed_idx.testcoll 中构建并运行上述结果显示其指标如下

> db.testcoll.getIndices()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "so_hashed_idx.testcoll"
},
{
"v" : 1,
"key" : {
"_id" : "hashed"
},
"name" : "_id_hashed",
"ns" : "so_hashed_idx.testcoll"
}
]

关于mongodb - 如何通过 mgo (golang) 创建散列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45389410/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com