我在MongoDB
中保存已填充的文档时遇到问题。我正在使用mongoose
,而且大多数情况下它的工作非常好且直观。然而,不是populate
,遗憾的是文档很难反映这个问题。
我有3个模型:User
,Topic
,Answer
。 User
可以有Topic
而Topic
可以有Answers
。每个答案都有author
- User
。这些关系以适当的方式定义:
type: { type: mongoose.Types.Schema.ObjectId, ref: '...' }
我想出了如何做嵌套人口。在我的情况下,要使用author
的{{1}},当给定answer
时,人口将如下所示:
topicId
它有效。我可以访问所有文件。但是,当我删除“主题”时,我也希望删除所有.populate({
path: 'answers',
populate: {
path: 'author'
}
})
。另外,我需要从Answers
(作者)文档中删除Topic._id
,我需要分别从其作者中删除User
。代码如下所示:
Answers._ids
我使用let topicIdIndex = topic.author.topics.indexOf(topicId);
topic.author.topics.splice(topicIdIndex, 1);
topic.author.save();
删除了id
,但是当我致电splice
时,它只是不保存模型topic.author.save()
的填充文档author
。我不明白为什么,因为我知道User
实例本身带有所有的猫鼬功能 - 这就是为什么model
时你可以在{debugging
中看到实际的data
1}}字段。
有没有办法以这种方式存钱?我是否真的必须对我需要删除的每个_doc
进行手动搜索?