Как се внедряват помощните администратори за набор от реплики?
rs.*
помощници за администриране на набор от реплики
в mongo
shell са обвивки за MongoDB команди, които можете да изпратите от всеки драйвер.
Можете да видите кои команди обгръща всеки помощник на обвивката, като се обърнете към документацията на MongoDB:
rs.initiate()
предоставя обвивка околоreplSetInitiate
команда за база данни.rs.add()
предоставя обвивка около някои от функционалностите наreplSetReconfig
команда за база данни и съответния помощник на mongo shellrs.reconfig()
.rs.conf()
обвиваreplSetGetConfig
команда за база данни.
Имайте предвид, че mongo
помощниците на обвивката могат да направят допълнително валидиране или манипулиране на конфигурации, тъй като те са предназначени за използване чрез интерактивния mongo
черупка.
Можете да потвърдите как някой от помощниците на обвивката е имплементиран, като извикате командата в обвивката без скоби в края, напр.:
> rs.initiate
function (c) { return db._adminCommand({ replSetInitiate: c }); }
Извикване на команди за база данни с реплика от Node.js
Еквивалентната логика може да бъде приложена чрез API на драйвера Node.js с помощта на command()
:
// Rough equivalent of rs.initiate()
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
// Use the admin database for commands
var adminDb = db.admin();
// Default replica set conf
var conf = {};
adminDb.command({replSetInitiate: conf}, function(err, info) {
console.log(info);
});
});
Вместо да внедрявате повторно помощниците за набор от реплики в Node.js, можете да извикате mongo
обвивка с --eval
команда за стартиране на помощника на обвивката (съвет:включете --quiet
за потискане на ненужни съобщения).
Например обаждане от вашето приложение Node:
var exec = require('child_process').exec;
var rsAdmin = exec('mongo --eval "var res = rs.initiate(); printjson(res)" --quiet', function (error, stdout, stderr) {
// output is in stdout
console.log(stdout);
});