Мангуст - найти ребенка по Id - PullRequest
0 голосов
/ 10 декабря 2018

Подробности: вот мой макет схемы

Schema Layout:
const mongoose = require("mongoose");

module.exports = function(db) {

let gameSchema = new mongoose.Schema({

opponent: String,
location: String,
date: String,
completions: Number,
attempts: Number,
yards: Number,
touchdowns: Number,
interceptions: Number,
});

let quarterbackSchema = new mongoose.Schema({
firstName: String, 
lastName: String,
school: String,
age: Number,
hometown: String,
games:[gameSchema]
});

Вот как выглядит сохраненный документ

{
"_id": {
    "$oid": "5c0a551df8555c1c1ef0c101"
},
"firstName": "Pepper",
"lastName": "Princess ",
"age": 14,
"hometown": "Farmville, Ms",
"school": "Farmers School of Important Stuff",
"games": [
    {
        "_id": {
            "$oid": "5c0ca5ba7213fe6a5f52848c"
        },
        "opponent": "Crock McSnagglebite",
        "location": "Pattys Putrid Flower Garden",
        "date": "1/23/2020",
        "completions": 777,
        "attempts": 777,
        "yards": 777,
        "touchdowns": 777,
        "interceptions": 777
    }
],
"__v": 1
}

Вопрос: Я пытаюсь найти поддокумент по его _id.Код примера, который я разместил, отображает номер как «5c0ca5ba7213fe6a5f52848c».

Я пытался

 Quarterback.find({_id: req.body.id}).then(function(Results){});

 Quarterback.findOne({_id: req.body.id}).then(ect...

 Quarterback.findById({_id: req.body.id}).then(ect...

и многими другими способами, я просто не знаю, что я делаю неправильно.Я использовал

JSON.stringify (req.body));чтобы убедиться, что маршрут возвращал желаемое значение, и оно
мой console.log выводит следующее

Это подробности игры req.body :: {"child": "5c0d02649c936072d47f12a9"}

, но функция find продолжает возвращать ноль для результата при использовании вышеуказанных методов.Я студент и все еще учусь, так что, возможно, я упускаю что-то легкое.Я надеюсь, что кто-то здесь может помочь.Большое вам спасибо за ваше время !!

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

В вашей схеме квотербека произошла ошибка.games:[gameSchema] должно быть

games:[game:{type: Schema.Types.ObjectId,ref: 'games'}] После исправления вы сможете выполнить этот запрос: Quarterback.find({games: req.body.id}).then(function(Results){});

0 голосов
/ 10 декабря 2018
Quarterback.find({games._id: req.body.id}).then(function(Results){});

должно работать.Вы должны передать game._id, потому что именно так осуществляется доступ к объектам и свойствам JSON

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...