gpt4 book ai didi

mongodb - 以编程方式启用分片+使用带有 Mongo 2.4 的 casbah 在集合上选择分片键

转载 作者:行者123 更新时间:2023-12-05 06:46:17 25 4
gpt4 key购买 nike

我正在尝试以编程方式“启用分片”并使用 java/scala API 尤其是 casbah 设置“分片键”

我们的配置

scala 2.10
casbah 2.6 - "org.mongodb" % "casbah_2.10" % "2.6.0",
MongoDB 2.4.4

此外,mongo 2.4.4 的 casbah 驱动程序版本是多少(使用 scala 2.10)

我们的用例是这样的,集合 + 索引是使用 casbah scala API dbConnection.getCollection(....)collection.ensureIndex(DBObject("orgId"-> 1), DBObject("background"-> true, "name"-> "org_idx", "unique"-> false))

是否有等效的 casbah API 以编程方式启用分片并选择 shardKey 以及我们目前正在分片我们的 mongo 集群以向外扩展。我们的数据库 + 集合名称事先未知,并且是使用 API 动态创建的,因此使用 mongo shell 启用分片根本不是一种选择。

有更好的方法吗?有什么建议吗?

最佳答案

以下是对我有用的,建立在@Ross 的回答之上,但对我来说不太有用:

import com.mongodb.casbah.Imports._

// Connect to MongoDB
val conn = MongoClient()
val adminDB = conn("admin")

// Enable sharding on the DB
adminDB.command(MongoDBObject("enableSharding" -> <database>))

// Create the index for our shard key
val shardKey = MongoDBObject("_id" -> "hashed")
conn(<database>)(<collection>).ensureIndex(shardKey)

// Enable sharding on the collection
adminDB.command(MongoDBObject("shardCollection" -> "<database>.<collection>",
"key" -> shardkey))

关于mongodb - 以编程方式启用分片+使用带有 Mongo 2.4 的 casbah 在集合上选择分片键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17016336/

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