2017-12-20 6 views
0

Ich erstelle eine Website für ein Cybercafe und ich muss angeben, dass "dieser bestimmte Benutzer" "diesen bestimmten Computer" verwendet. Diese ist, was ich bisher getan haben:Interaktion zwischen aktiven Benutzern und Computer - MongoDB/Nodejs

var computerSchema = mongoose.Schema({ 
    name: String, 
    type: String, 
    gpu: String, 
    cpu: String, 
    memory: String, 
    cm: String, 
    usedBy : {type: String, default: null}, 
    active: {type: Boolean, default:false, ref:'user'} 

}); 



var userSchema = mongoose.Schema({ 

    firstname: String, 
    lastname: String, 
    age: Number, 
    address: String, 
    mail: String, 
    password: String, 
    status: String, 
    here: {type: Boolean, default:false}, 
    created_date: Date, 
    updated_date: Date, 
    active_hash: String, 
    role_id: { type: Number, default: 2 } 
}); 

userSchema.virtual('users', { 
    ref: 'computer', 
    localField:'_id', 
    foreignField:'active' 
}) 

Antwort

1

dieses Tun Sie, ich glaube, Sie Ihre userSchema.virtual löschen können, und Ihre userSchema zu aktualisieren, um Computer Bezug auf jeden Benutzer wie folgt zu machen:

var userSchema = mongoose.Schema({ 
    firstname: String, 
    lastname: String, 
    age: Number, 
    address: String, 
    mail: String, 
    password: String, 
    status: String, 
    here: {type: Boolean, default:false}, 
    created_date: Date, 
    updated_date: Date, 
    active_hash: String, 
    role_id: { type: Number, default: 2 }, 
    computerId: {ref: 'computer'} // Your new reference to a computer _id 
}); 

dann, wenn Sie einen Benutzer mit seinem Computer finden möchten, können Sie mongoose populate wie folgt verwenden:

UsersModel.find().populate('computerId').exec(function(err, users) { 
    if (err) throw err; 
    console.log(users); // display users with affected computers if exists 
}); 

Hoffe, es hilft.

Verwandte Themen