MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Czy mogę wywołać rs.initiate() i rs.Add() z node.js przy użyciu sterownika MongoDb?

Jak zaimplementowani są pomocnicy administratora zestawu replik?

rs.* pomocników administratora zestawu replik w mongo shell to wrappery dla poleceń MongoDB, które możesz wysłać z dowolnego sterownika.

Możesz zobaczyć, które polecenia zawija każdy helper powłoki, odwołując się do dokumentacji MongoDB:

Zauważ, że mongo Pomocnicy powłoki mogą dokonać dodatkowej walidacji lub manipulacji plikami konfiguracyjnymi, ponieważ są przeznaczone do użycia poprzez interaktywne mongo powłoka.

Możesz potwierdzić, jak zaimplementowano którykolwiek z pomocników powłoki, wywołując polecenie w powłoce bez końcowych nawiasów, np.:

> rs.initiate
function (c) { return db._adminCommand({ replSetInitiate: c }); }

Wywoływanie poleceń zestawu replik bazy danych z Node.js

Równoważną logikę można zaimplementować za pomocą interfejsu API sterownika Node.js przy użyciu 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);
  });
});

Zamiast ponownie zaimplementować pomocniki zestawu replik w Node.js, możesz wywołać mongo powłoka z --eval polecenie do uruchomienia pomocnika powłoki (wskazówka:include --quiet aby pominąć niepotrzebne wiadomości).

Na przykład dzwoniąc z aplikacji 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. Czy można użyć projekcji zapytania w tej samej kolekcji, która ma projekcję $elemMatch?

  2. Błąd wbudowanej aplikacji Spark i MongoDB w Scala 2.10 maven

  3. wstrzyknięcie mongoDB

  4. Moja metoda $push w Mongoose nie działa dobrze

  5. Ogranicz i sortuj wbudowaną mapę / Zmniejsz w MongoDB