MongoDB 修改子集(集合)中某条数据的属性值

前提

   我在项目中需要修改mongoDB中的一条记录的子集属性,如下:

{
    "_id" : ObjectId("5c875d13bfb42a9cb35b8c73"),
    "Product_Id" : "121-00738",
    "ProductGroups" : [
        {
            "Product_Id" : "121-00738",
            "Prod_Grp_Type" : "BIGR",
            "Product_Group" : "10207111"
        }
    ]
}

我要修改ProductGroups下Product_Group的值。

解决方法

db.collection.update({"ProductGroups.Product_Id":"121-00738","Prod_Grp_Type" : "BIGR"}, { $set : {"ProductGroups.$.Product_Group":"value" }})

Java  中解决方法:

Query oFilter = Query.query(Criteria.where("Product_Id").is("121-00738"));
			oFilter.addCriteria(Criteria.where("ProductGroups.Product_Id").is("121-00738"));
			oFilter.addCriteria(Criteria.where("ProductGroups.Prod_Grp_Type").is("BIGR"));

Update update =new Update();
update.set("ProductGroups.$.Product_Group", "value");
//执行
BulkOperations bulkOperations=mongoTemplate.bulkOps(BulkMode.UNORDERED, collectionName);
		BulkWriteResult result=bulkOperations.updateOne(query, update).execute();

 

你可能感兴趣的:(mongoDB,java)