首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >mongo运算符更新数组中的所有匹配项

mongo运算符更新数组中的所有匹配项
EN

Stack Overflow用户
提问于 2019-05-13 00:42:14
回答 1查看 42关注 0票数 1
代码语言:javascript
复制
messages: [
    {
        user: "5c57c85a9354fa24ad749137",
        text: "hello",
        unread: true
    },
    {
        user: "5c57c85a9354fa24ad749137",
        text: "world",
        unread: true
    }
]

我正在尝试更新id与给定id与$[]不匹配的所有数组元素,但什么都没有发生

代码语言:javascript
复制
ChatSchema.update(
        {_id: mongoose.Types.ObjectId(req.body.conversationId), "messages": {$elemMatch: {"user": {$ne: mongoose.Types.ObjectId(req.body.userId)}}}},
        {$set: {"messages.$[].unread": false}},
        {multi: true}
        ).exec()

当我使用单个$运算符时,它只更新找到的第一个元素。

我使用的是mongo版本4.0.6和mongoose版本6.7.0

EN

回答 1

Stack Overflow用户

发布于 2019-05-13 01:07:01

匹配条件应为

代码语言:javascript
复制
ChatSchema.update(
  { "_id": mongoose.Types.ObjectId(req.body.conversationId) }},
  { "$set": { "messages.$[msg].unread": false }},
  { "arrayFilters":[{ "msg.user": { "$ne": mongoose.Types.ObjectId(req.body.userId) }}] }
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56101346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档