我需要通过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
如何让它运作?
答案 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;