如何使用/ Java驱动程序更新MongoDB中的文档

时间:2013-08-13 16:10:08

标签: java mongodb

我正在尝试使用Mongo ObjectId作为标准更新文档,我将其存储在并行字段contentGroupId中,但它无法正常工作。

当您使用内部ID作为主键时,使用Java驱动程序更新Mongo中的文档的最佳做法是什么?

@Override
public void updateContentGroup( ContentGroup contentGroup ) {    

    DBCollection contentGroupCollection = db.getCollection( "contentGroups" );

    Gson gson = new Gson();
    String json = gson.toJson( contentGroup );

    DBObject contentGroupDoc = (DBObject) JSON.parse( json );        

    BasicDBObject criteriaObject = new BasicDBObject();
    criteriaObject.append( "_id", "ObjectId(\"520a56b730047339c26ec1fa\")");

    contentGroupCollection.update( criteriaObject, contentGroupDoc );
}

由于式提前,

1 个答案:

答案 0 :(得分:1)

我认为你的问题在这里:

criteriaObject.append( "_id", "ObjectId(\"520a56b730047339c26ec1fa\")");

应该是:

criteriaObject.append( "_id", new ObjectId("520a56b730047339c26ec1fa");

这样,字段值被视为对象id,而不是字符串(包含文字“ObjectId”)