开发者社区> 问答> 正文

如果数组中最后一个元素中的字段不等于值,则更新文档

我不知道如何在mongodb文档中按数组中的最后一个元素匹配文档。假设我要用新数据更新特定文档,如果数组最后一个元素中的字段不等于某个特定值。我知道我可以这样做来检查Array中的字段是否已经不包含该值:

myTable.update({ Thing: thisThing, 
                 'myArray.Element': {$ne: parseInt(thisValue)} }, ...)

展开
收起
游客ufivfoddcd53c 2020-01-04 11:29:23 1025 0
1 条回答
写回答
取消 提交回答
  • 假设我们要将所有姓氏与“ Oscar”(在本例中为John)不同的用户的“ user”字段更改为“ Updated”。该查询:

    db.getCollection('names').update({$where: "this.list_friends[this.list_friends.length - 1] !== 'Oscar'"}, {"$set": {"user": "Updated"}})
    
    

    修改集合,最终结果是:

    /* 1 */
    {
        "_id" : ObjectId("58de74f8c1bb7f4256adf32c"),
        "user" : "Updated",
        "list_friends" : [ 
            "Alice", 
            "Bob"
        ]
    }
    
    /* 2 */
    {
        "_id" : ObjectId("58de75d3c1bb7f4256adf32d"),
        "user" : "Pop",
        "list_friends" : [ 
            "Eve", 
            "Oscar"
        ]
    }
    
    

    我使用Mongo 3.2测试了该解决方案,但不确定该解决方案是否适用于旧版本。

    2020-01-04 11:30:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载