未根据id在mongodb数据库中更新
基于id,我必须更新mongodb数据库中的一个字段。我使用SpringMVC、angularjs和mongodb。Id正在提交到我的spring类,但它没有更新。我给出了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
//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)