После попытки заполнения массива идентификаторов мангуста просто возвращает пустой массив вместо заполненного массива. Я также пытался использовать findById и найти методы.
Маршрут работает.
в моем файле контроллера:
var Restaurant = require('../../shared/models/restaurant');
var objectID = require('mongodb').ObjectID
exports.get_Restaurant_detail = (req, res, next) => {
if(objectID.isValid(req.params.id)){
Restaurant.findOne({"_id": req.params.id})
.populate("dishes")
.exec( (err, restaurant) => {
if(err) return res.send("error");
res.json(restaurant);
});
} else {
res.status(400).json({"status": "Error"})
}
}
в моем файле маршрутизатора:
//GET detailed information about a specific restaurant
router.get('/restaurants/detail/:id', read_controller.get_Restaurant_detail);
Схема ресторана:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var RestaurantSchema = new Schema(
{
name : {type: String, required: true, max: 100},
description: {type: String, required: true, max: 2000},
image: {type: String, required: false, max: 100},
category: [{type: String, required: true, max: 50}],
location: {type: String, required: true, max: 50},
adress: {type: String, required: true, max: 50},
show: {type: Boolean, required: true, default: false},
open: {
from: {type: Number, required: true, max: 24},
to: {type: Number, required: true, max: 24},
},
dishes: [{type: Schema.Types.ObjectId, required: true, ref:'Dish'}]
},
{
toObject: {
virtuals: true
},
toJSON: {
virtuals: true
}
});
module.exports = mongoose.model('Restaurant', RestaurantSchema);
Блюдо Схема
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var DishSchema = new Schema(
{
name : {type: String, required: true, max: 100},
price : {type: Number, required: true, max: 500},
description: {type: String, required: true, max: 2000},
picture: {type: String, required: false, max: 100},
category: {type: String, required: true, max: 50},
restaurant: {type: Schema.Types.ObjectId, required: true, ref:'Restaurant'}
},
{
toObject: {
virtuals: true
},
toJSON: {
virtuals: true
}
});
module.exports = mongoose.model('Dish', DishSchema);
(схемы находятся в двух разных файлах)