mongodb - Golang MongoDB增量整数值

标签 mongodb go

我正在使用这个官方图书馆https://github.com/mongodb/mongo-go-driver这是我在MongoDB中的文档之一

{
    "_id": "5f0ebe6dfcee0f34c64b23b0",
    "userID": "user A",
    "unread": 1,
    "projectID": 2
}
问题是我想增加(可能也减少)字段“未读”
我尝试使用“$ inc”,它变成这样
{
    "_id": "5f0ebe6dfcee0f34c64b23b0",
    "userID": "user A",
    "unread": {
        "$incr": 1,
    },
    "projectID": 2
}
我认为会有两个条件
  • 文件已经存在
  • 文件尚不存在

  • 如果我使用的是UpdateOneUpdateMany,如果该文档尚不存在,将再次成为问题
    有人可以帮助我
    谢谢,干杯^^

    最佳答案

    您必须使用upsert-如果存在,它将进行更新,否则会插入。
    Refer this

    db.collectionName.update(
       { item: "ZZZ135" },   // Find query 
       {
         "$set":{                     // Update document
          item: "ZZZ135",
          stock: 5,
          tags: [ "database" ]
         }
       },
       { upsert: true }      // Option
    )
    

    关于mongodb - Golang MongoDB增量整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62911602/

    相关文章:

    mongodb - MongoDB 范围查询中 $lt 和 $gt 的顺序

    java - 使用 Java - MongoDB 在服务器上存储函数

    c++ - 与 CMake 链接的 C/C++ 库

    go - go例程中基于上下文的长时间运行循环终止

    pointers - 围棋之旅,引用Vector结构时&与no与之间的区别

    string - 从 map 获取值时出现意外值

    mongodb - 如何在字段名称中使用点?

    javascript - Node.js 域在连接时显示来自数据库的事件消息

    google-app-engine - 如何使用 Go 的 dataStore 创建数据模型?

    go - 在 Gorilla mux 处理后运行中间件