Я пытаюсь связать две мои схемы мангуста, используя идентификаторы, присвоенные mongoose (_id) У меня есть схема пользователей и схема серверов, каждый сервер должен иметь 1 пользователь в качестве владельца, но у каждого пользователя может быть много серверов. Поэтому я сохраняю req.user.id (from passportJS) в схеме сервера, и есть массив в схеме пользователей, где я хочу нажимать идентификаторы для серверов, когда они создаются. Я еще не успел использовать заполнение, потому что не понимаю, как взять идентификатор с сервера, который должен быть создан, и направить его на массив серверов пользователей.Ссылка на схемы мангуста с использованием идентификаторов, выталкиваемых в массив?
. Вот моя схема серверов:
var mongoose = require ('mongoose');
var timestamps = require('mongoose-times');
var Schema = mongoose.Schema;
var ServerSchema = new Schema({
name: String,
imgurl: String,
address: String,
port: String,
tags: Array,
votifier :{
enabled: Boolean,
address: String,
port: String,
pubKey: String
},
ownerID: {type: Schema.ObjectId, ref: 'User'},
upvotes: {type: Number, default: 0}
});
ServerSchema.plugin(timestamps);
module.exports = mongoose.model('Server', ServerSchema);
Вот мои пользователи схема:
var mongoose = require('mongoose');
var bcrypt = require('bcrypt-nodejs');
var timestamps = require('mongoose-times');
var Schema = mongoose.Schema;
var userSchema = Schema({
local :{
username: {type: String, required: true},
password: {type: String, required: true}
},
email: {type: String, required: true},
imgId: String,
servers: [{type: Schema.ObjectId, ref: 'Server'}]
});
userSchema.plugin(timestamps);
//methods
//gen hash
userSchema.methods.generateHash = function(password, next){
bcrypt.hash(password, bcrypt.genSaltSync(8), null, next);
console.log(password + ': Password has generated hash');
};
userSchema.methods.validPassword = function(candidatePassword, cb) {
bcrypt.compare(candidatePassword, this.local.password, function(err, isMatch){
if(err) return cb(err);
cb(null, isMatch);
});
};
module.exports = mongoose.model('User', userSchema);
Как я могу взять _ID сервер, который создается и толкать его в массив в схеме пользователя, который я findByID используя OwnerId сервера схема?
Любая помощь была бы оценена, также если это полный неправильный способ делать подобные вещи, пожалуйста, дайте мне знать! Благодаря