分片时无法创建索引

时间:2011-01-05 05:01:36

标签: mongodb

当我尝试启用分片时...我收到以下错误........

use admin
switched to db admin
> db.runCommand( { enablesharding : "sgserver" } )
{ "ok" : 1 }
> db.runCommand( { shardcollection : "sgserver.block_seek_pos", key : {fileGUID : 1} } )

"ok" : 0,
"errmsg" : "please create an index over the sharding key before sharding."

> db.sgserver.ensureIndex({"fileGUID": 1})
> db.runCommand( { shardcollection : "sgserver.block_seek_pos", key : {fileGUID : 1} } )

"ok" : 0,
"errmsg" : "please create an index over the sharding key before sharding."

它坚持要我创建一个索引,但是如果我尝试创建一个索引,我就会得到上面提到的错误。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

sgserver数据库中是否有admin个集合?

在执行ensureIndex()之前,我没有看到切换到正确数据库的命令。代码可能看起来像这样:

db.runCommand( { enablesharding : "sgserver" } );
use sgserver;
db.sgserver.ensureIndex({"fileGUID": 1});
db.runCommand( { shardcollection : "sgserver.block_seek_pos", key : {fileGUID : 1} } )