sql >> Database >  >> NoSQL >> MongoDB

Meerdere Mongodb-databases gebruiken met Meteor.js

Bijwerken

Het is nu mogelijk om verbinding te maken met externe/meerdere databases:

var database = new MongoInternals.RemoteCollectionDriver("<mongo url>");
MyCollection = new Mongo.Collection("collection_name", { _driver: database });

Waar <mongo_url> is een mongodb-url zoals mongodb://127.0.0.1:27017/meteor (met de databasenaam)

Hier zit momenteel één nadeel aan:Geen Oplog

Oud antwoord

Op dit moment is dit niet mogelijk. Elke meteor-app is gebonden aan één database.

Er zijn een paar manieren om dit te omzeilen, maar het kan ingewikkelder zijn dan het waard is:

Eén optie - Gebruik een aparte Meteor-app

In je andere meteor-app (bijvoorbeeld draaiend op poort 6000 op dezelfde machine). U kunt nog steeds reactiviteit hebben, maar u moet proxy-inserts, verwijderingen en updates uitvoeren via een methodeaanroep

Server:

Cats = Meteor.Collection('cats')

Meteor.publish("cats", function() {
    return Cats.find();
});

Meteor.methods('updateCat, function(id, changes) {
    Cats.update({_id: id}, {$set:changes});
});

Je huidige Meteor-app:

var connection = DDP.connect("http://localhost:6000");

connection.subscribe("cats");
Cats = Meteor.Collection('cats', {connection: connection});

//To update a collection
Cats.call("updateCat", <cat_id>, <changes);

Een andere optie - aangepaste mongodb-verbinding

Dit gebruikt de node js mongodb native driver.

Dit is verbinding maken met de database alsof je zou doen in een andere node js-app.

Er is geen reactiviteit beschikbaar en u kunt de new Meteor.Collection . niet gebruiken type collecties.

var mongodb = Npm.require("mongodb"); //or var mongodb = Meteor.require("mongodb") //if you use npm package on atmosphere

var db = mongodb.Db;
var mongoclient = mongodb.MongoClient;
var Server = mongodb.Server;

var db_connection = new Db('cats', new Server("127.0.0.1", 27017, {auto_reconnect: false, poolSize: 4}), {w:0, native_parser: false});

db.open(function(err, db) {
    //Connected to db 'cats'

    db.authenticate('<db username>', '<db password>', function(err, result) {
      //Can do queries here
      db.close();
   });
});


  1. Hoe de korte maandnaam in SQL te krijgen

  2. Meerdere $elemMatch-expressies voor het matchen van arraywaarden met $all in MongoDB?

  3. Monitoring Percona Server voor MongoDB - Belangrijkste metrische gegevens

  4. tel het aantal sessies in connect-redis