【发布时间】:2018-03-24 00:15:20
【问题描述】:
我正在开始我的第一个真正的项目,并且一直对如何在 Mongoose 中处理嵌套子文档感到沮丧。
删除嵌套 2 或 3 次的子文档的最佳方法是什么,我们不知道数组的确切索引?
例如对于看起来像这样的架构:
var showSchema = new mongoose.Schema({
title: String,
description: String,
seasons: [{
name: String,
videos: [{
description: String,
url: String,
comments: [{
content: String,
authorName: String,
}]
}]
}]
});
我看到有人提到使用类似的东西:
Show.findByIdAndUpdate({'_id': showId, 'seasons._id': seasonId}, {'$pull': {'seasons.$.videos': {'videos._id': videoId}}}, function(err)...
或类似的东西。
如果我们想删除评论怎么办?注释嵌套得更深,AFAIK MongoDB 只允许一个 $。就我而言,我不知道任何这些数组的索引。
Mongoose 有我们可以使用的方法吗?我没怎么看懂 Mongoose 文档。
感谢您的帮助!
编辑:
比我更有知识的人告诉我,不推荐这样的深层嵌套。将嵌套限制在一层深度并将内容拆分为与引用相关的自己的文档对我来说会更好吗?
【问题讨论】:
标签: node.js mongodb express mongoose