使用Spring @Query注解在MongoDB文档中删除一个数组字段的对象

mongoDB的 document 显示如下

{
    "_id" : ObjectId("5a79b826324a9a48356ta233")
    "name": "XYZ",
    "products": [{
        "_id": ObjectId("60d75e6f0095ee2d6469158c")
    }, {
        "_id": ObjectId("60d75e6f0095ee2d6469158e")
    }],
    "notes": "Times new Roman",
    "_class": "com.example.com"
}

我只是想通过传递id值作为输入,删除products数组中的一个id。考虑删除"_id"。ObjectId("60d75e6f0095ee2d6469158c"),所以我只需传递id值 60d75e6f0095ee2d6469158c。结果文件应该是这样的

{
    "_id" : ObjectId("5a79b826324a9a48356ta233")
    "name": "XYZ",
    "products": [{
         {
        "_id": ObjectId("60d75e6f0095ee2d6469158e")
    }],
    "notes": "Times new Roman",
    "_class": "com.example.com"
}

所以我只需要@Query()注解的值,它将被提到AbcRepository扩展MongoRepository中定义的抽象方法上,这样我就可以从products中删除所需的_id

参考对此,我只能在命令外壳中看到类似于这样的CLI操作

涉及到使用一个驱动程序和编写一个查询模板

但我确实需要在Spring Boot中使用@Query()注解进行操作。


StackOverflow:java - Removing an object of an array field in MongoDB document using Spring @Query annotation - Stack Overflow