sql >> Database teknologi >  >> NoSQL >> MongoDB

Brug af flere Mongodb-databaser med Meteor.js

Opdater

Det er nu muligt at oprette forbindelse til fjerntliggende/flere databaser:

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

Hvor <mongo_url> er en mongodb url såsom mongodb://127.0.0.1:27017/meteor (med databasenavnet)

Der er én ulempe ved dette i øjeblikket:Ingen Oplog

Gammelt svar

I øjeblikket er dette ikke muligt. Hver meteor-app er bundet til én database.

Der er et par måder, du kan komme uden om dette på, men det kan være mere kompliceret, end det er værd:

Én mulighed - Brug en separat Meteor-app

I din anden meteor-app (eksempel kører ved port 6000 på samme maskine). Du kan stadig have reaktivitet, men du skal proxyindsætte, fjerne og opdatere gennem et metodekald

Server:

Cats = Meteor.Collection('cats')

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

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

Din nuværende 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);

En anden mulighed - tilpasset mongodb-forbindelse

Dette bruger node js mongodb native driver.

Dette forbinder til databasen, som hvis du ville gøre det i enhver anden node js-app.

Der er ingen reaktivitet tilgængelig, og du kan ikke bruge den new Meteor.Collection typesamlinger.

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. MongoDB dropIndex()

  2. Hurtigere måde at iterere alle nøgler og værdier i redis db

  3. DynamoDB vs MongoDB NoSQL

  4. Gem brugeroplysninger med redis eller mongodb