MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Мога ли да извикам rs.initiate() и rs.Add() от node.js с помощта на драйвера MongoDb?

Как се внедряват помощните администратори за набор от реплики?

rs.* помощници за администриране на набор от реплики в mongo shell са обвивки за MongoDB команди, които можете да изпратите от всеки драйвер.

Можете да видите кои команди обгръща всеки помощник на обвивката, като се обърнете към документацията на MongoDB:

  • rs.initiate() предоставя обвивка около replSetInitiate команда за база данни.
  • rs.add() предоставя обвивка около някои от функционалностите на replSetReconfig команда за база данни и съответния помощник на mongo shell rs.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);
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Селективна репликация в mongodb

  2. Преброяване на елементи от друг документ в агрегирането на mongodb

  3. не може да преобразува от 'MongoDB.Driver.IMongoCollection<>' в 'System.Collections.Generic.IEnumerable<>'

  4. Mongoose заявка за вложена схема

  5. Попълване на вложен масив в mongoose