[英]C# Entity - Delete Items by ID - ID to delete are in an other list
[英]Delete a item by ID in list inside other list in mongodb using C# .net
我有一个像大学这样的结构,有一个课程列表。 班级有学生名单。 我为 mongodb 中的 3 个实体制作了 CRUD,一切正常,除了学生 object 中的删除。
我有一个像这样的 json
{
"id": "u01",
"classes": [
{
"id": "c01",
"students": [
{
"id": "s01",
"name": "Ana"
},
{
"id": "s02",
"name": "Jonh"
}
]
}
]
}
我需要使用 dot.net 拉 id S02 并尝试使用 pullFilter
var filter = Builders<University>.Filter.And(Builders<University>.Filter.ElemMatch(doc => doc.Classes, c => c.Id == "c01"));
var update = Builders<University>.Update.PullFilter(c => c.Classes.First().Students, item => item.Id == "s02");
collection.FindOneAndUpdateAsync(filter, update);
我没有例外,但没有工作。 怎么了? 泰寻求帮助
为了从与过滤器匹配的第一个 class 中删除学生,您将在MongoDB中指定字段,如下所示:
classes.$.students
在 C# 中,您可以通过使用 -1 的索引来模拟这一点,例如:
var update = Builders<University>
.Update
.PullFilter(c => c.Classes.ElementAt(-1).Students, item => item.Id == "s02");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.