- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想要这样的东西:
old_record
new_record
old_record
我这样写代码:
ret = nil
// First, Find the obj
obj := &orm.QuerySetObj{}
err2 := this.querySetCollection.With(session).Find(objKey).One(obj)
if nil != err2 {
this.logger.Println("Error find obj")
return
}
ret = obj
// Then, update this obj
obj.updateTime = time.Now().Unix()
err3 := this.querySetCollection.With(session).Upsert(objKey, obj)
if nil != err3 {
this.logger.Println("Error update obj")
return
}
return
但是,我认为 find
和 update
应该是 atomic
操作,所以我的代码不安全。
如何在原子操作中做到这一点
最佳答案
这里的方法是.Apply()
这需要 Change输入并返回 ChangeInfo .
文档中的直接示例:
change := mgo.Change{
Update: bson.M{"$inc": bson.M{"n": 1}},
ReturnNew: false,
}
info, err = col.Find(M{"_id": id}).Apply(change, &doc)
fmt.Println(doc.N)
其中 doc
是找到的文档,它的状态取决于 Change
参数中 ReturnNew
的值,即 false
你想要原始文档的地方。
基本上所有参数的格式都与 .findAndModify()
相同。
关于mongodb - 如何使用golang在mongodb中findAndModify一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31937292/
我尝试在文档数组中查找一个对象,并更新其字段。 db.rescuemodels.findAndModify({ query: { "features": {
在 mongodb 手册上有一个用于对单个文档进行原子操作的 example。 book = { _id: 123456789, title: "MongoDB
我正在尝试使用 findAndModify 修改多个文档,然后返回修改后的新文档。我的查询是: db.users.findAndModify({ query: { _id: {
findAndModify() 提供什么类型的锁定?是只写锁还是读/写?它会阻止对同一记录的同时更新吗? 最佳答案 MongoDB 有一个全局(每个实例)写锁,它序列化服务器中所有数据的所有更新(尽管
我有一个包含许多文档的集合,每个文档都包含一个数组,我想从每个文档的数组中删除最低值。 实现此目标的最有效方法是什么? findAndModify 是否能够执行此类操作? 我需要使用 forEach
我的 MongoDB 集合用作作业队列,有 3 台 C++ 机器从这个集合中读取数据。问题是这三个人不能执行相同的工作。所有作业只需完成一次。 我通过使用“isDone:False”在集合中搜索所有记
假设文档的结构如下: {_id:"session-01", status:"free"} 并且有 2 个并发操作执行下面的 findAndModify 操作:db.collection.findAnd
我有以下代码: var roomDoc = Rooms.findAndModify({ query: {name: roomName}, update: {$setOnInsert: {uni
当使用 MongoTemplate - collection.findAndModify 时,它将删除所有文档字段,只保留更新的列。 这是为什么呢? 如何部分更新文档中的字段? DBC
我使用 python 2.6.6、pymongo 1.9、mongodb 1.6.5、Ubuntu 10.10 我在使用 FindAndModify 命令时遇到了奇怪的问题。 我有两个相同的进程同时运
我正在尝试将 findAndModify 与 node.js mongodb 模块 monk 一起使用。这是我正在使用的方法,它会抛出一个 500cmd 中的 错误: notesCollectio
我的 MongoDB 数据库中有一个集合,其中包含多个键。现在我想用一个新字段更新这个集合。所以这是我到目前为止所拥有的: def confirm(hash: String) = { va
我想弄清楚是否有可能在 MongoDB 中推送一个元素并同时(原子 FindAndModify 操作)更新数组中元素的最大值。 例子: { "_id": "...", "max_value":
有没有办法将 mongo 的 findAndModify 应用于每个符合条件的文档,而不仅仅是第一个文档?我在 mongodb.org 上找不到它。 谢谢。 最佳答案 您可以使用 update()多参
我正在 Node 中创建一个包含一些 CRUD 组件的应用程序。在我的一个数据对象上,我有一个 save() 方法,如果对象具有在集合中找到的 id,则更新记录,如果没有,则更新插入新文档。此外,如果
我需要使用 mongodb 查找并修改第一个匹配的元素。可能吗?我没能从官方文档中找到如何操作:http://www.mongodb.org/display/DOCS/findAndModify+Co
我有一个用 Java 编写并使用 MongoDB 3.4 副本集的任务 worker ,该副本集运行许多线程,每个线程基本上都在执行此操作。 运行任务 通过在 MongoDB 中更新该任务的文档来表示
我在 MongoDB 中的多个并发进程中使用 FindAndModify。集合大小约为 300 万个条目,只要我不通过排序选项(通过索引字段),一切都会像爆炸一样运行。一旦我尝试这样做,就会在日志中生
我正在尝试在嵌套数组中查找记录,对其进行修改,然后进行投影。 假设我有以下收藏: { "_id" : ObjectId("56558dfc45a06f51decb4ab7"), "ar
在我当前的应用程序中,我对 MongoDB 服务器进行了以下 MongoDB FindAndModify 调用 public static TEntity PeekForRemoveSync(this
我是一名优秀的程序员,十分优秀!