1

我们的项目之一是使用 MongoDb,我们的数据库 => 集合是分片的。顺便说一句,我们的集合是动态创建的,因此我们必须在用 PHP 编写的应用程序层中编写代码来通知 MongoDb 对集合进行分片。因此,我正在寻找两种选择:

  1. 有什么方法可以确定集合是否通过 PHP 共享?[或者]
  2. 告诉 MongoDb 对已分片的集合进行分片有什么问题吗?
4

2 回答 2

1

db.printShardingStatus() 1]您可以通过操作通过检查给出字符串输出来识别集合是否分片,以了解如何打印MongoDB的输出

2] 要求 MongoDB 对已经分片的集合进行分片没有问题。如果已经分片,Mongo 永远不会将“ok”设置为 1。 db.runCommand({ enablesharding : "sharded_db_name" })
{ "ok" : 0, "errmsg" : "already enabled" }

于 2012-10-23T09:57:57.250 回答
0

1.我不完全确定这一点,因为我不使用PHP驱动程序,但是,在shell上运行时sh.status(),可以看到分片集合是什么。例如,下面我对“twitter”数据库中的“tweets”集合进行了分片-

 databases:
    {  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }
    {  "_id" : "twitter",  "partitioned" : true,  "primary" : "shard0000" }
        twitter.tweets chunks:
                shard0001   11
                shard0002   11
                shard0000   12

这里有进一步的分片文档。

PHP 驱动程序文档在这里

2.您不能对分片集合进行分片,不确定为什么需要……这没有意义。

于 2012-10-16T16:03:32.733 回答