Как сохранить вложенный документ только с выбранными полями, а не со всеми полями документа, встраивая документ? - PullRequest
0 голосов
/ 14 апреля 2020

Код в моделях:

const fooSchema = mongoose.Schema({
    name: String,
    type: String,
    quantity: Number,

});
const barSchema = mongoose.Schema({
    name:String,
    color:String,
    foo: fooSchema
});

Пожалуйста, смотрите в коде маршруты

const foo = await Foo.findById(bar.foo._id);

let bar = new Bar({
    name: req.body.name,
    color: req.body.color,
    foo:
    {
      _id: foo._id,
      name: foo._name
    }
});

при сохранении с помощью почтальона

{
    name: "Bar name",
        color: "Blue" ,
        foo:
    {
       _id: "5e95eee1d3cfe05bc48e0d8f"
    }
}

его было сохраненный в mongodb как

{
    name: "Bar name",
        color: "Blue" ,
        foo:
    {
       _id: "5e95eee1d3cfe05bc48e0d8f",
       name: "Foo name",
       type: "Foo type",
       quantity: 1500
    }
}

Я не знаю, где я делаю ошибку, я указываю только те поля из вложенного документа, которые мне нужно сохранить здесь, мне нужно только сохранить имя с _id, но сохранить все полей из коллекций foo. Обратите внимание, что я использую версию mon goose как "mon goose": "^ 5.9.9"

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