Как обновить элемент внутри массива в mon goose? - PullRequest
0 голосов
/ 10 апреля 2020

Прямо сейчас это схема, которую у меня есть

const mongoose = require('mongoose')

const {Schema} = mongoose

const docsSchema = new Schema({
    github_id: {
        type: String,
        required: true
    },
    folders: [{
        name: {
            type: String
        },
        docs: [{
            title: {
                type: String
            },
            body: {
                type: String
            }
        }]
    }]
},{timestamps: true})

const Docs = mongoose.model('Doc',docsSchema)

module.exports = Docs

, и я хочу создать новые документы в указанных c папках. Это означает, что мне нужно обновить массив docs внутри массива folders. Я использую mon goose, с помощью express, чтобы создать API отдыха.


Есть идеи, как это сделать?

1 Ответ

0 голосов
/ 10 апреля 2020

Если вы хотите добавить несколько папок в один Do c, вы можете использовать обычный синтаксис обновления mongodb:

Docs.updateOne(
  { github_id: githubId, 'folders.folderName': folderName },
  { $push: { 'folders.$.docs': each: [newDocs] }
)

Обратите внимание, что это не относится к промежуточным программам mon goose. Если вам нужно промежуточное программное обеспечение для запуска, используйте: findOneAndUpdate: https://mongoosejs.com/docs/tutorials/findoneandupdate.html

Ссылки:

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