现在这是我拥有的架构
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
我要做的是在特定文件夹内创建新文档。
这意味着我必须更新docs
数组内的folders
数组
我使用猫鼬,与表达创建一个休息的API。
有什么想法吗?
答案 0 :(得分:0)
假设您要向一个文档添加多个文件夹,则可以使用普通的mongodb更新语法:
Docs.updateOne(
{ github_id: githubId, 'folders.folderName': folderName },
{ $push: { 'folders.$.docs': each: [newDocs] }
)
请注意,这不适用于猫鼬中间件。如果需要运行中间件,请使用:findOneAndUpdate
:https://mongoosejs.com/docs/tutorials/findoneandupdate.html
参考: