如何通过编程为数据库启用分片,然后使用node.js mongodb驱动程序对集合进行分片?

如何通过编程为数据库启用分片,然后使用node.js mongodb驱动程序对集合进行分片?,node.js,mongodb,Node.js,Mongodb,我有下面的nodejs脚本,它当前创建了几个试用数据库,然后创建了一个集合,并将一个示例条目插入到集合中。现在,我想为数据库启用分片,然后基于散列id字段对集合进行分片。我该怎么做 代码中运行mongos的主机和端口 var mongoClient = require('mongodb').MongoClient; var name = "sampledb"; function start() { for (var i=4;i<20;++i) { var dbna

我有下面的nodejs脚本,它当前创建了几个试用数据库,然后创建了一个集合,并将一个示例条目插入到集合中。现在,我想为数据库启用分片,然后基于散列id字段对集合进行分片。我该怎么做

代码中运行mongos的主机和端口

var mongoClient = require('mongodb').MongoClient;
var name = "sampledb";

function start() {
    for (var i=4;i<20;++i) {
        var dbname = name + i;
        mongoClient.connect("mongodb://" + host + ":" + port + "/" + dbname, function(err, db) {
            if(err) {
                console.log("Error connecting to db");
                process.exit(0);
            }
            db.createCollection("messages", function(err_, result_) {
                if (err_) {
                    console.log("Error while creating collection");
                    process.exit(0);
                }
                db.collection("messages").insert({"id":"<random id>"}, {w:0}, function(err, result) {
                    if(err) {
                        console.log("Could not insert document");
                    } else {
                        console.log("Successfully inserted document");
                    }
                });
                //now shard the collections created
            });
        });
    }
}

start();

对于我的问题,我找不到合适的文档,请有人帮我解决一下……谢谢。

首先,以编程方式更改数据库设置是个坏主意,每个DBA只要对自己正在做的事情稍有了解,就会将数据检索的用户限制在该角色和权限范围内。切分的含义远比乍一看要明显得多。@MarkusWMahlberg谢谢,这不是生产设置,而是我要验证的测试设置。好的,让我换一种说法:是否切分集合不是由开发人员决定,而是由管理员决定。为了建立一个分片集合,比如说集成测试,您应该手工完成。