MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Không thể lấy gói Cơ sở tài khoản để trỏ đến cơ sở dữ liệu chính xác

Tìm trực tiếp mã cho gói tài khoản-cơ sở (Meteor v 1.0.4), có vẻ như họ không chính thức hỗ trợ cách thiết lập cơ sở dữ liệu cho bộ sưu tập người dùng. Như bạn có thể thấy từ mã, máy chủ luôn kết nối bằng Meteor.connection mặc định:

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

Accounts.connection được đặt ở trên, nhưng rõ ràng là không được hỗ trợ:

// ~ 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)
  }
}

Tuy nhiên, tôi đã có thể làm cho nó sử dụng cơ sở dữ liệu của mình bằng cách đặt biến môi trường $ MONGO_URL (mà tôi tin rằng sẽ đặt kết nối mặc định, được gói tài khoản sử dụng):

Trong một cửa sổ đầu cuối, tôi đã bắt đầu mongo trên cổng 27017

> mongod

Trong một cửa sổ khác, tôi đặt MONGO_URL và thêm các gói thích hợp, sau đó bắt đầu sao băng:

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

Và cuối cùng trong bảng điều khiển trình duyệt của mình, tôi đã tạo một tài khoản:

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

Sau đó, tôi đã kết nối với test cơ sở dữ liệu trong phiên bản mongo của tôi:

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

Tóm lại, tôi nghĩ bạn có ba lựa chọn không phải là quá tuyệt vời:

  • Sử dụng MONGO_URL biến môi trường (có lẽ là lựa chọn tốt nhất)
  • Hack gói cơ sở tài khoản để làm những gì bạn muốn
  • Dùng thử ACCOUNTS_CONNECTION_URL không được hỗ trợ biến, có thể 'biến mất bất kỳ lúc nào'



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. nhóm khung tổng hợp mongodb + dự án

  2. Kích thước tối đa hoạt động hàng loạt MongoDB là gì?

  3. Cách để giảm mức sử dụng bộ nhớ của mongoose khi thực hiện truy vấn

  4. Thực thi Mongo như Truy vấn (JSON) thông qua Java

  5. Mongoose sắp xếp theo trường phổ biến