Mongoose/MongoDB:针对特定的子模式?
Posted
技术标签:
【中文标题】Mongoose/MongoDB:针对特定的子模式?【英文标题】:Mongoose/MongoDB: Targeting specific sub-schemas? 【发布时间】:2019-02-03 22:33:09 【问题描述】:我在猫鼬中有以下架构:
const textSchema = new Schema(
title: type:String, unique: true ,
sentences: [SentenceSchema],
)
假设一个典型的文本有大约 100 个句子。现在我在前端稍微修改了一个句子,需要将该更改发送到我的服务器/mongodb。我如何最好地使用 mongoose+rest api 来做到这一点?我会因为一个句子的变化而更新整篇文章吗?或者有没有办法让我只针对我想要更改的那句话?
PS:对不起,这个问题可能很基础,但对我有很大帮助!提前感谢您的回答!
【问题讨论】:
【参考方案1】:不,您不需要更改整篇文章。您可以做的是,您可以通过使用句子 id 找到实际变化的句子并更新特定句子。您需要使用 findOneAndUpdate() 方法。
请参考以下查询
Text.findOneAndUpdate(
"_id": textId, "sentences._id": updatedSentenceId ,
"$set":
"sentences.$": updatedSentence
,
function(err,doc)
);
【讨论】:
以上是关于Mongoose/MongoDB:针对特定的子模式?的主要内容,如果未能解决你的问题,请参考以下文章
在 Mongoose/MongoDB 的文档中过滤数组、子文档、数组、文档