2015-09-07 20 views
0

我的目標是讓mongoDB具有多個表(文檔集合),每個用戶都是每個用戶。那麼如何在運行時在多個表中「切換」(在特定用戶登錄後特定表是已知的)? 我有此代碼剪斷......如何在angularjs和mongoose中的多個表(文檔)之間切換

var mongoose = require('mongoose'), Schema = mongoose.Schema; 

var TicketSchema = new Schema({ 
    Unit_descriptor: String, 
    ... 
    Total_tons: Number 
}, { strict: false }); 

module.exports = mongoose.model('tickets_user1', TicketSchema); 

...我希望能夠切換臺爲當前登錄的用戶,例如:表可以與用戶名的後綴,如上面的代碼。

我試圖創建導出的函數從控制器和交換表後調用,就像這樣:

var auth = require('../../auth/auth.service.js'); 
... 
module.exports.initTable = function initTable() { 
    module.exports = mongoose.model('tickets_user2', TicketSchema); 
}; 

...不換表,user1的數據依然存在。

那麼,我怎麼能做到這一點?謝謝。

回答

0

我創造這樣的第二種模式解決了這個:

var mongoose = require('mongoose'), Schema = mongoose.Schema; 

var TicketSchema = new Schema({ 
    Unit_descriptor: String, 
    ... 
    Total_tons: Number 
}, { strict: false }); 

var table = ''; 

function reloadForUser(user){ 
    var userTable = user.table; 
    if(userTable != undefined) { 
    table = userTable; 
    } 
    return mongoose.model(table, TicketSchema, table); 
} 

exports.reloadForUser = reloadForUser; 

,然後當我需要它,我只是需要它,並調用定義的函數:

Ticket = require('./reload.model'); 
Ticket = Ticket.reloadForUser(username);