Bagaimana replika set pembantu admin diimplementasikan?
rs.*
replika set pembantu admin
di mongo
shell adalah pembungkus untuk perintah MongoDB yang dapat Anda kirim dari driver apa pun.
Anda dapat melihat perintah mana yang dibungkus oleh setiap shell helper dengan mengacu pada dokumentasi MongoDB:
rs.initiate()
menyediakan pembungkus di sekitarreplSetInitiate
perintah basis data.rs.add()
menyediakan pembungkus di sekitar beberapa fungsireplSetReconfig
perintah database dan mongo shell helperrs.reconfig()
.rs.conf()
membungkusreplSetGetConfig
perintah basis data.
Perhatikan bahwa mongo
pembantu shell dapat melakukan beberapa validasi tambahan atau manipulasi konfigurasi karena mereka dimaksudkan untuk digunakan melalui mongo
interaktif cangkang.
Anda dapat mengkonfirmasi bagaimana shell helper diimplementasikan dengan menjalankan perintah di shell tanpa tanda kurung, misalnya:
> rs.initiate
function (c) { return db._adminCommand({ replSetInitiate: c }); }
Memanggil replika set perintah database dari Node.js
Logika yang setara dapat diimplementasikan melalui API driver Node.js menggunakan 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);
});
});
Daripada mengimplementasikan ulang helper set replika di Node.js, Anda bisa memanggil mongo
shell dengan --eval
perintah untuk menjalankan shell helper (tip:include --quiet
untuk menekan pesan yang tidak perlu).
Misalnya, menelepon dari aplikasi Node Anda:
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);
});