如何使用Spring更新mongodb文档中的特定字段?

时间:2014-09-17 11:43:06

标签: java spring mongodb

我需要通过ObjectId搜索product文档,并使用Spring数据框架更新特定字段listed。 当我尝试在注入update

时使用MongoOperations方法时,我从IDE收到错误
@Repository
public class ProductDao  {
@Autowired
    private MongoOperations mongoOperations;

public void cancel(Long id) {
        mongoOperations.update("{"_id":"00000000001"}","$set{"listed":"False"}"); // error // something like that
    }
}

我想我需要使用DBCollection,但我有问题设置它。要更新字段,我需要使用 $ set

如何让它运作?

1 个答案:

答案 0 :(得分:3)

我现在没有能力对此进行测试,但这是你应该采取的方式。我假设您的产品文档映射在下面的代码段中的Product.class中

mongoOperations.updateFirst(new Query(where("_id").is("00000000001")),Update.update("listed", "False"), Product.class)

如果您想更新许多与查询匹配的文档,则应使用updateMulti函数。

此外,您需要的两个导入是:

import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;