gpt4 book ai didi

mongodb - mongodb 中的数组过滤器

转载 作者:可可西里 更新时间:2023-11-01 10:01:59 25 4
gpt4 key购买 nike

我有以下架构。

{
posts: [
{
_id: '5ayuunbdsyuuuyut778'
replies: [{
_id: "67hfudj7e9whduu888",
text: "something"
}]
}
]
}

我想更新特定回复的文本。我正在使用 Mongoose 。

我写的查询如下

Post.findOneAndUpdate(
{'posts.replies._id': _id},
{$set: {'posts.$[post].replies.$[reply].text': "something1"}},
{ arrayFilters: [{'post._id': postId}, { 'reply._id': _id }]}
)

此查询未更新文档。

我错过了什么吗?我是否需要使用 ObjectId 转换 ID

最佳答案

您需要使用 new: true 来获取更新后的值并将 id 转换为 mongoose objectId 以使其工作

Post.findOneAndUpdate(
{ 'posts.replies._id': _id },
{ $set: { 'posts.$[post].replies.$[reply].text': "something1" } },
{ arrayFilters: [{ 'post._id': postId }, { 'reply._id': _id }], new: true }
)

关于mongodb - mongodb 中的数组过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51324876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com