Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未根据id在mongodb数据库中更新_Mongodb_Spring Mvc - Fatal编程技术网

未根据id在mongodb数据库中更新

未根据id在mongodb数据库中更新,mongodb,spring-mvc,Mongodb,Spring Mvc,基于id,我必须更新mongodb数据库中的一个字段。我使用SpringMVC、angularjs和mongodb。Id正在提交到我的spring类,但它没有更新。我给出了mongodb中的一个数据示例。根据这些数据,我必须更新状态字段 //mongodb { "_id" : ObjectId("556459bc4f3c9aac453f711d"), "name" : "TestTask3", "type" : null, "status" : "Pending A

基于id,我必须更新mongodb数据库中的一个字段。我使用SpringMVC、angularjs和mongodb。Id正在提交到我的spring类,但它没有更新。我给出了mongodb中的一个数据示例。根据这些数据,我必须更新状态字段

//mongodb

{   "_id" : ObjectId("556459bc4f3c9aac453f711d"),
    "name" : "TestTask3",
    "type" : null,
    "status" : "Pending Approval",
    "detail" : "TEst",
    "comments" : "TEst"
}

//Spring class
public void approveTask(String id){


        try {
            DBCollection collection = mongoTemplate.getCollection(RelmanUtil.MONGO_DB_COLL_TASKS);
            BasicDBObject query = new BasicDBObject("_id",id);        
            BasicDBObject update = new BasicDBObject();       
            update.put("$set", new BasicDBObject("status", "Assigned"));
            collection.update(query, update);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

您错过了将
id
作为字符串传递给
mongo ObjectId
的内容。您应该按如下方式更改代码:

import org.bson.types.ObjectId;
public void approveTask(String id) {
  try {
    DBCollection collection = mongoTemplate.getCollection(RelmanUtil.MONGO_DB_COLL_TASKS);
    BasicDBObject query = new BasicDBObject("_id", ObjectId(id));
    //OR BasicDBObject query = new BasicDBObject("_id", new ObjectId(id));
    BasicDBObject update = new BasicDBObject();
    update.put("$set", new BasicDBObject("status", "Assigned"));
    collection.update(query, update);
  } catch(Exception e) {
    e.printStackTrace();
  }
}
id
放入
ObjectId(id)或新ObjectId(id)