gpt4 book ai didi

mongodb - 使用 MongoDB Java 驱动程序以编程方式设置分片键

转载 作者:可可西里 更新时间:2023-11-01 09:59:10 26 4
gpt4 key购买 nike

从 MongoDB Java 驱动程序版本 2.10.1 设置分片键的语法是什么?

或者换句话说,我如何使用 Java 驱动程序执行此操作?

sh.shardCollection("test.a", {"_id": "hashed"}})

最佳答案

简短回答:您应该发出 shardCollection 命令。

长答案:

MongoDB shell 中的 sh.shardCollection 只是调用 admin db 上命令的辅助方法。

如果您在 MongoDB shell 中输入 sh.shardCollection,您将看到该函数实际执行的操作:

> sh.shardCollection
function ( fullName , key , unique ) {
sh._checkFullName( fullName )
assert( key , "need a key" )
assert( typeof( key ) == "object" , "key needs to be an object" )

var cmd = { shardCollection : fullName , key : key }
if ( unique )
cmd.unique = true;

return sh._adminCommand( cmd );
}

然后您可以在 MongoDB shell 中调用 sh._adminCommand:

> sh._adminCommand
function ( cmd , skipCheck ) {
if ( ! skipCheck ) sh._checkMongos();
return db.getSisterDB( "admin" ).runCommand( cmd );
}

当你把它们放在一起时,sh.shardCollection 命令所做的就是检查参数并调用这个命令:

db.getSisterDB( "admin" ).runCommand({ 
shardCollection : "test.a" ,
key : {"_id": "hashed"}
});

Java 语法:

DBObject cmd = new BasicDBObject("shardCollection", "test.a").
append("key",new BasicDBObject("_id", "hashed"));
CommandResult r = db.getSisterDB("admin").command(cmd);

关于mongodb - 使用 MongoDB Java 驱动程序以编程方式设置分片键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24268475/

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