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

Kan ikke få Accounts-Base-pakken til at pege på den korrekte database

Ser direkte på koden til kontobasepakken (Meteor v 1.0.4), det ser ud til, at de ikke officielt understøtter en måde at indstille databasen til brugernes samling. Som du kan se fra koden, forbinder serveren altid ved hjælp af standard Meteor.connection:

Meteor.users = new Mongo.Collection("users", { // line 141
  _preventAutopublish: true,
  connection: Meteor.isClient ? Accounts.connection : Meteor.connection
});

Accounts.connection er angivet ovenfor, men det er udtrykkeligt ikke understøttet:

// ~ line 118
if (Meteor.isClient
....
if (typeof __meteor_runtime_config__ !== "undefined" &&
  __meteor_runtime_config__.ACCOUNTS_CONNECTION_URL) { 
    // Temporary, internal hook to allow the server to point the client
    // to a different authentication server. This is for a very
    // particular use case that comes up when implementing a oauth
    // server. Unsupported and may go away at any point in time.
    //
    // We will eventually provide a general way to use account-base
    // against any DDP connection, not just one special one.
    Accounts.connection = DDP.connect(
      __meteor_runtime_config__.ACCOUNTS_CONNECTION_URL)
  }
}

Jeg var dog i stand til at få den til at bruge min database ved at indstille miljøvariablen $MONGO_URL (som jeg tror sætter standardforbindelsen, som bliver brugt af kontopakken):

I et terminalvindue startede jeg mongo på port 27017

> mongod

I et andet vindue indstillede jeg MONGO_URL og tilføjede de relevante pakker, og startede derefter meteor:

> export MONGO_URL=mongodb://localhost:27017/test
> meteor add accounts-base
> meteor add accounts-password
> meteor

Og endelig oprettede jeg en konto i min browserkonsol:

> Accounts.createUser({username: 'me', password: 'guest'});

Derefter oprettede jeg forbindelse til test database i min mongo-instans:

> mongo
  MongoDB shell version: 3.0.1
  connecting to: test
> db.users.find()
  { "_id" : "L3EDrS8FnRymDLhPp", ... "username" : "me" }

Kort sagt, jeg tror, ​​du har tre ikke-super-gode muligheder:

  • Brug MONGO_URL miljøvariabel (sandsynligvis den bedste mulighed)
  • Hack den kontobaserede pakke for at gøre, hvad du vil
  • Prøv den ikke-understøttede ACCOUNTS_CONNECTION_URL variabel, som kan 'gå væk på et hvilket som helst tidspunkt'



  1. find ved _id med Mongoose

  2. Send stor matrix til node underordnet proces

  3. MongoDB $ og operatørforespørgsel i PHP

  4. Sammenlægning af matrixfelter i MongoDB-aggregering