У меня есть два пользователя и запросы моделей mongoose. Один пользователь может иметь несколько запросов. Чтобы связать эти две модели данных, я ссылаюсь на идентификатор объекта пользователя в модели Request. Однако, когда я пытаюсь получить все запросы для определенного ID пользователя, я не получаю никакого результата.Ссылка на модель данных с использованием ObjectID в Mongoose
Пользователи
var UserSchema = new Schema({
name: String,
username: String
});
module.exports = mongoose.model('User', UserSchema);
просит
var RequestSchema = new Schema({
type: String,
user_id: { type : mongoose.Schema.Types.ObjectId, ref: 'User'}
});
module.exports = mongoose.model('Request', RequestSchema);
Ниже приведен пример кода, который получает запросы на основе идентификатора пользователя передается в URL
exports.getRequests = function (req, res, next) {
var userId = req.params.id;
console.log('USER ID'+userId);
Request.findOne({'user_id': 'kenan'}, function (err, request) {
if (err) return next(err);
if (!requests){
console.log('NO REQUEST FOUND');
return res.send(401);
}
res.json(request);
});
};
Iзнаю, что я использую findOne, который вернет мне один ресурс. Однако это не работает, и я не получаю никакого результата. У меня в моей БД данные заселены. Ниже приведен URL для получения запросов.
http://localhost:9000/api/V1/users/547ee1e82e47bb982e36e433/requests
Пожалуйста, подскажите, что я делаю неправильно здесь.
Благодаря
Спасибо за ваш ответ. Я попробую это. Однако я пытаюсь найти с помощью Request.findOne(). Здесь также мне нужно использовать населенность? Мое понимание заключалось в том, что заполнение должно использоваться при поиске родительской схемы, в данном случае для пользователей. – Sashi
Populate используется для разрешения ссылок. В этом случае ваш user_id должен быть разрешен. Конструкция схемы идеально подходит для запроса, чтобы найти всех пользователей для определенного типа запроса. – BatScream
Но я хотел бы найти все запросы от определенного user_id. Почему я не могу просто запросить схему запроса и указать user_id точно так же, как и любой другой столбец. – Sashi