当前位置: 首页 > 知识库问答 >
问题:

在mongodb collection上执行简单功能而不将其存储到内存?

章博耘
2023-03-14

我的mongo db集合中有1000个用户,我想在不将它们加载到内存的情况下对它们进行一些更新,更新是:

在每个用户对象中,我都有以下内容:

user : {
    money : 100,
    skill : 50,
    stamina : 50
}

我想做以下简单的操作:

 user.skill            = Math.max(0, user.skill + 50);
 user.stamina          = Math.max(0,Math.min(100, user.stamina + 20));
 user.moral              = Math.max(0,Math.min(100, user.moral + 10));

但是,像这样的更新,但不存储在内存中,甚至有可能做这样的检查吗?(可能是更复杂的事情?)

共有1个答案

陶成济
2023-03-14

您应该看看Mongodb中的更新操作符:http://docs.mongodb.org/manual/reference/operator/update/

这些操作符可以在不将文档加载到客户端的情况下更新文档中的字段,因此看起来适合您的情况:)

你需要:$inc,$min,$max,

 类似资料:
  • 问题内容: noob Golang和Sinatra人在这里。我入侵了Sinatra应用程序,以接受从HTML表单发布的上传文件,并通过GridFS将其保存到托管的MongoDB数据库中。这似乎工作正常。我正在使用mgo驱动程序在Golang中编写相同的应用程序。 从功能上来说,它工作正常。但是在Golang代码中,我将文件读入内存,然后使用mgo将文件从内存写入MongoDB。这似乎比我同等的Si

  • 这里的 Spring 文档 http://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/repositories.html#repositories.custom-implementations 提供了将自定义功能添加到所有存储库或单个存储库的示例,而不是同时添加到两者。 假设我想向所有存储库添加一些自定义函数(使用

  • 我已经阅读了与此相关的所有其他答案。但这对我不起作用,或者我只是不明白一些事情。请帮忙。 我正在从客户端发送'image/png'base64字符串。它是这样的:“Ivborw0kggoaaansuheugaaaaaaaaaaa……” 在云函数我有方法: 有什么不对劲?

  • 错误:(gcloud.functions.deploy)operationerror:code=7,message=没有足够的权限(重新)配置触发器(bucket ing-auto权限被拒绝)。请将所有者权限授予bucket的编辑器角色,然后再试一次。 对于云中使用的服务帐户,函数拥有对bucket所在项目的所有者访问权限。 也就是说,有两个项目,project-a和Project-B。需要在Pr

  • 问题内容: 我有一个长度为2.2亿(固定)的int和float数组。现在,我想将这些阵列存储到内存和磁盘/从内存和磁盘上载。目前,我正在使用Java NIO的FileChannel和MappedByteBuffer解决此问题。它可以正常工作,但大约需要5秒钟(Wall Clock Time)(用于将阵列存储到内存或从内存上载到磁盘或从磁盘上载到磁盘)。实际上,我想要一个更快的。有人可以帮我吗,有没