是否可以使用.Net驱动程序:
谢谢!
答案 0 :(得分:0)
是。但是在mongo shell中执行这些操作要容易得多,因为它已经定义了辅助函数。查看replica set tutorials。对于使用mongo shell中的某些函数的每个步骤,例如rs.initiate()
或rs.add()
,您可以通过在shell提示符下输入带括号的函数名来查看函数的代码:
> rs.initiate
function (c) { return db._adminCommand({ replSetInitiate: c }); }
> rs.add
function (hostport, arb) {
var cfg = hostport;
var local = db.getSisterDB("local");
assert(local.system.replset.count() <= 1, "error: local.system.replset has unexpected contents");
var c = local.system.replset.findOne();
assert(c, "no config object retrievable from local.system.replset");
c.version++;
var max = 0;
for (var i in c.members)
if (c.members[i]._id > max) max = c.members[i]._id;
if (isString(hostport)) {
cfg = { _id: max + 1, host: hostport };
if (arb)
cfg.arbiterOnly = true;
}
if (cfg._id == null){
cfg._id = max+1;
}
c.members.push(cfg);
return this._runCmd({ replSetReconfig: c });
}
由于shell版本,shell中的代码可能略有不同;我的shell是3.0.1。您可以使用此代码作为在C#中编写这些函数的自己版本的指南。您将使用RunCommand方法在服务器上运行replSetReconfig
和replSetInitiate
等命令。