Я пытался связать своих собирающих пользователей с сайтами в течение нескольких дней, и я использую население, но здесь у меня не было попадания, я оставляю часть своего кода и свой репозиторий github:
модель. js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const mySchema = new Schema({
name: String,
cites: [{ type: Schema.ObjectId, ref: 'Cites' }]
});
const model = mongoose.model('User', mySchema);
module.exports = model;
store. js
function listUsers() {
return new Promise((resolve, reject) => {
Model.find().populate('cites')
.exec((error, populate) => {
if (error) {
reject(error);
return false;
}
resolve(populate);
});
})
}
module.exports = {
list: listUsers,
}
контроллер. js
function listUsers() {
return new Promise((resolve, reject) => {
resolve(store.list())
});
}
сеть. js
router.get('/', function(req, res) {
controller.listUsers()
.then(users => {
response.success(req, res, users, 200);
})
.catch(err => {
response.error(req, res, 'Internal error', 500, err);
});
});
модель сайтов:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const mySchema = new Schema({
user: {
type: Schema.ObjectId,
ref: 'User'
},
namepet: String,
type_of_service: String,
characteristic_of_pet: String,
price: Number
});
const model = mongoose.model('Cites', mySchema);
module.exports = model;
результат с использованием Insomnia для пользователей:
хранилище github: https://github.com/Makarov96/backendnodejsjp
и у меня есть ссылки с идентификатором пользователя
// Решено, я сделал это: Store. js
async function addCite(id, cite) {
var myUser = Model;
var item = new ModelCite(cite);
return await item.save(async() => {
const usersearch = await myUser.findById({ _id: id })
usersearch.cites.push(item);
usersearch.save();
});
}