标签: findandmodify

findAndModify - MongoError:exception:必须指定删除或更新

我想更新一个数组并返回文档.我的findAndModify语法是否正确?

this.becomeFollower = function(title, username, callback){
    "use strict"

    posts.findAndModify({
        query: {"title":title, "roster":"yes"},
        update: { "$addToSet": { "followers":username } },
        new: true,
        upsert: true
        }, 
        function(err, doc){
            console.log('find and modified  ' +doc);
        });

}
Run Code Online (Sandbox Code Playgroud)

使用它我没有问题:

    posts.update({"title":title, "roster":"yes"}, { "$addToSet": { "followers":username } }, function(err, roster){
        "use strict"
        if(err) return callback(err, null);
        callback(err, roster);
    });
Run Code Online (Sandbox Code Playgroud)

javascript mongodb node.js findandmodify

11
推荐指数
1
解决办法
7024
查看次数

findAndModify是否有效锁定文档以防止读取冲突?

假设有如下文档的结构:
{_id:"session-01", status:"free"}

并且有两个并发操作执行以下findAndModify操作: db.collection.findAndModify({query:{status:"free"}, update:{status:"occupied"}, new:true})

我想要实现的只有一个操作可以获得"空闲"操作,并对其执行锁定,因此其他操作必须为空.那是findAndModify的作用吗?

mongodb mongodb-query findandmodify

8
推荐指数
1
解决办法
4157
查看次数

IntelliJ IDEA:如何在选定的文本中查找+替换?

例如,我如何选择 5 行代码,并将所有实例替换myObject1myObject2

如果后续代码行包含我希望更改的myObject1引用。这样我就可以非常方便地在此代码范围内快速应用查找和替换,而不必担心副作用。

这可能吗?

intellij-idea findandmodify

7
推荐指数
2
解决办法
3028
查看次数

如何使用golang在mongodb中找到并修改一条记录?

我想要这样的东西:

  1. 在mongo db中找到一条记录 old_record
  2. 将此记录更新为 new_record
  3. 返回 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
Run Code Online (Sandbox Code Playgroud)

但是,我想findupdate应该是一个atomic操作,所以我的代码是不是安全.

我怎么能在原子操作中做到这一点

atomic go mongodb findandmodify

6
推荐指数
1
解决办法
4951
查看次数

初始值不为零的 Mongodb 计数器

我想创建一个从 1000 开始的计数器。

即upsert一个mongodb文档如下

  • 如果该文档不存在,则创建一个,值为 1000
  • 如果文档已经存在,则将值增加+1

以下不起作用:

environment_data:PRIMARY> db.test.findAndModify
   ({query:{key:"mycounter"},
     update:{$inc:{value:1}, $set:{value:1000}},
     upsert:true})

Error: findAndModifyFailed failed: {
 "errmsg" : "exception: Cannot update 'value' and 'value' at the same time",
 "code" : 16836,
 "ok" : 0
}
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉 upsert 对于插入,它需要 $set 1000 ,但对于更新,它需要 $inc 1 ?

upsert mongodb findandmodify

5
推荐指数
1
解决办法
2076
查看次数

我想获取MongoTemplate的findAndModify返回值作为修改值

我目前在 Spring boot 中使用 mongoTemplate,如下所示:

public MyEntity update(MyDto dto) {
    ...
    MyEntity result = mongoTemplate.findAndModify(
        query, update, MyEntity.class);

    return result;
}
Run Code Online (Sandbox Code Playgroud)

query放入找到CriteriaMyEntity修改的 ,并update放入要更改的内容。但返回的值是更新前的数据。如何立即获取修改后的值?

findandmodify spring-boot mongotemplate

4
推荐指数
1
解决办法
4399
查看次数

在mongodb中查找更新和更新

我正在使用Update和FindAndModify但现在我已经读过Update和FindAndModify是原子的(http://docs.mongodb.org/manual/tutorial/model-data-for-atomic-operations/),

因此,如果两者都可以完成相同的工作,通过查询项目并更新它,那么有什么区别?

我在StackOverflow上找到了几个答案,但没有一个提到Update也是原子的:在MongoDB中findAndModify和update有什么区别?

mongodb mongomapper findandmodify

3
推荐指数
1
解决办法
4694
查看次数

mongoDB 的 findAndModify 是不是“事务保存”

我知道,mongo DB 上没有事务支持。但是现在我需要读取文档的值,增加 1 并写入新值。

或者 - 不同的方式:更新一个元素并同时读取值。为此,我喜欢使用查找和修改:http : //www.mongodb.org/display/DOCS/findAndModify+Command

此命令更新文档并返回更新前的值。这是否发生在(相同的)交易中?关键是:另一个会话是否有可能在另一个会话的两个步骤之间更新相同的值?

(对不起,对我来说很难解释 - 我希望你明白我想说的话)

谢谢你。

transactions mongodb findandmodify

1
推荐指数
1
解决办法
1632
查看次数

MongoDB - 使用 findAndModify 进行 $set 或更新嵌入文档

我想使用 findAndModify 更新插入嵌入文档的字段。例如,如果我要插入这个文档。

{
   'name':'Goku',
   'level':9000,
   'family':{
      'son':'Grandpa Gohan',
      'wife':'Chi Chi'
   }
}
Run Code Online (Sandbox Code Playgroud)

然后稍后插入以下文档:

{
   'name':'Goku',
   'type':'Super Saiyan',
   'family':{
      'son':'Gohan',
      'father':'Bardock'
   }
}
Run Code Online (Sandbox Code Playgroud)

期望的最终结果是:

{
   'name':'Goku',
   'level':9000,
   'type':'Super Saiyan',
   'family':{
      'son':'Gohan',
      'father':'Bardock',
      'wife':'Chi Chi'
   }
}
Run Code Online (Sandbox Code Playgroud)

我尝试用下面的代码在 Java 中实现这一点,但没有成功。是否有任何内置功能可以实现上述预期结果?

String json = "{'name':'Goku', 'level':9000, 'family':{'son':'Grandpa Gohan', 'wife':'Chi Chi'} }";
DBObject document = (DBObject) JSON.parse(json);
BasicDBObject update = new BasicDBObject("$set", document);
BasicDBObject query = new BasicDBObject().append("name", document.get("name"));
collection.findAndModify(query, null, null, false, update, false, true);

json = "{'name':'Goku', 'type':'Super Saiyan', 'family':{'son':'Gohan', 'father':'Bardock'} …
Run Code Online (Sandbox Code Playgroud)

java mongodb findandmodify

1
推荐指数
1
解决办法
2942
查看次数

我可以在MongoDB的深层嵌套文档上使用findAndModify之类的东西吗?

我的MongoDB 具有类似以下文档的Collection 上下文上下文中有一些具有角色的用户

{
    "__v" : 0,
    "_id" : ObjectId("53dea71a713d636e1fea705a"),
    "name" : "team4",
    "users" : [ 
        {
            "userId" : "53a347467f311d7c1731f91b",
            "roles" : [ 
                "admin"
            ]
        }, 
        {
            "userId" : "536d2e8be0f9697e13b95c87",
            "roles" : []
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以使用findAndModify用户添加(或删除)角色

mongodb findandmodify

1
推荐指数
1
解决办法
1151
查看次数

Python/R:如果2列在多行中具有相同的值,请在第3列中添加值并平均第4列,第5列和第6列

输入:

0 77 1 2 3 5
0 78 2 4 6 1
0 78 1 2 3 5
3 79 0 4 5 2
3 79 6 8 2 1
3 79 1 2 3 1
Run Code Online (Sandbox Code Playgroud)

输出:(为相同的行添加第3列值并取第4列,第5列和第6列中的所有值的平均值)

0 77 1.0 2.0 3.0 5.0
0 78 3.0 3.0 4.5 3.0
3 79 7.0 4.6 3.3 1.3
Run Code Online (Sandbox Code Playgroud)

python sorting r dataframe findandmodify

0
推荐指数
1
解决办法
701
查看次数