Ниже приведен пример схемы:Доступ мангуст массив схемы с телесным анализатором
var schema = mongoose.Schema;
var userSchema = new schema ({
username: {type: String},
hobby: [{
indoor: {
type: {type: String},
description: {type: String}
},
outdoor: {
type: {type: String},
description: {type: String}
}
}]
});
module.exports = mongoose.model('User', userSchema);
Таким образом, очень простая схема. Он запрашивает имя пользователя, а затем запрашивает у пользователя список своих хобби и делится между внутренними и внешними хобби и внутри массива.
Использование тела парсер, я мог бы получить на имя пользователя в форме ввода, как это:
var user = new User();
user.username = req.body.username;
Это достаточно просто. Но как мне добраться до хобби внутри массива? Я пробовал:
user.hobby.indoor.type = req.body.type
Но это не сработает; это просто дает мне ошибку. Любая помощь будет оценена по достоинству.
Добавление [0] просто не работает ... У меня все еще возникают ошибки. Вы упомянули, что мне «нужно предоставить индекс для извлечения его объектов»; Я не совсем понимаю, что вы имеете в виду. – MonkeyOnARock
Вы не можете получить доступ к объектам массива без указания индекса массива. Чтобы получить доступ к внутреннему объекту, вам необходимо указать 0-й индекс, в который помещается закрытый объект. Я обновляю ссылку, где вы можете найти решение. – amanpurohit
Итак, я играл с вашим jsfiddle и отлично работал. Но я все равно не могу заставить его применить мои поля формы. Вот jsfiddle, который показывает мое поле формы, мою схему и мой router.post: https://jsfiddle.net/4qq3hzr9/3/ ... Он будет извлекать имя пользователя просто отлично, но он не будет извлекать «тип» из поле формы. – MonkeyOnARock