У меня проблема. У меня есть две модели, относящиеся к мангусте, здесь я поместил две модели
Модель запроса
'use strict'
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var RequestSchema = Schema({
concept: String,
description: String,
amount: Number,
status: String,
checked: Boolean,
date: { type: Date, default: Date.now },
user: { type: Schema.Types.ObjectId, ref: 'User'},
})
module.exports = mongoose.model('Request', RequestSchema);
Модель пользователя
'use strict'
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = Schema({
name: String,
username: String,
password: String,
email: String,
requested: Number,
checked: Number,
role: String
});
UserSchema.methods.toJSON = function() {
var obj = this.toObject();
delete obj.password;
return obj;
}
module.exports = mongoose.model('User', UserSchema);
Проблема заключается в том, что при запросе списка всех запросов он возвращает их мне правильно, но это не делает меня заполненным, он возвращает его как ноль, я оставляю код, который я использую для запроса.
getRequests: function(req, res) {
Request.find().populate('user').exec((err, requests) => {
if(err) {
res.json(err);
}
return res.status(200).send({
status: 'success',
requests
});
})
}
Ответ, возвращаемый остальным клиентом, следующий.
{
"status": "success",
"requests": [
{
"_id": "5dd869285abf6533d04484bf",
"concept": "Gastos generales",
"description": "Gatos en viaje",
"amount": 4512,
"status": "Pendiente",
"checked": false,
"user": null,
"date": "2019-11-22T23:03:04.257Z",
"__v": 0
}
]
}
Я уже пытался использовать другие методы, и я не могу найти решение, все причиняет мне боль, и я не смог выявить какие-либо недостатки в моих моделях.
я сделал доказательства и мне следует из правильной формы populate, вероятно, что ты считаешь неправильным id в поле user ее colecciГіn Request такой
const mongoose = require('mongoose');
(async () => {
await mongoose.connect(
'mongodb://localhost/test',
{ useNewUrlParser: true, useCreateIndex: true, useFindAndModify: false, useUnifiedTopology: true }
)
.then(() => console.log('Connected to MongoDB :)'))
.catch(error => console.error(`Could not connect to MongoDB :( ... ${error}`));
var Schema = mongoose.Schema;
var RequestSchema = Schema({
concept: String,
description: String,
amount: Number,
status: String,
checked: Boolean,
date: { type: Date, default: Date.now },
user: { type: Schema.Types.ObjectId, ref: 'User' },
})
var UserSchema = Schema({
name: String,
username: String,
password: String,
email: String,
requested: Number,
checked: Number,
role: String
});
UserSchema.methods.toJSON = function () {
var obj = this.toObject();
delete obj.password;
return obj;
}
const User = mongoose.model('User', UserSchema);
const Request = mongoose.model('Request', RequestSchema);
const id = new mongoose.Types.ObjectId();
await mongoose.connection.dropDatabase();
await User.create({ _id: id, name: "user 1" });
await Request.create({ description: "request", user: id });
const result = await Request.find().populate('user');
console.log(result);
})();
Tengo как вывод
Connected to MongoDB :)
[ { _id: 5ddf5095ee8c5c1b54a8c0ea,
description: 'request',
user: { _id: 5ddf5094ee8c5c1b54a8c0e8, name: 'user 1', __v: 0 },
date: 2019-11-28T04:44:05.036Z,
__v: 0 } ]
disculpa из-за того, что не обновил меня situaciГіn, она soluciГіn был таким простым, что он кажется increГ-ble, despuГ©s проверки всего в деталь и того, чтобы быть 100 % безопасных, которого не habГ - во что-то с ошибкой. DecidГ - удалять базу данных, создавать новые документы и без ningГєn проблема сделала консультацию правильно, я не знаю, который был ошибкой, но эта была тот soluciГіn.
user
Ваших документов они не были типаObjectId
, уже это habí an помещенный в комментарии. Привет – Mauricio Contreras 28.11.2019, 10:56