我有一个类似大学的结构,有一个类的列表。I为mongodb中的3个实体创建了CRUD,除了student对象中的delete之外,一切正常。
我有个这样的儿子
{
"id": "u01",
"classes": [
{
"id": "c01",
"students": [
{
"id": "s01",
"name": "Ana"
},
{
"id": "s02",
"name": "Jonh"
}
]
}
]
}我需要使用dot.net的id dot.net并尝试使用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);我没有例外,但没有发挥作用。怎么了?Ty寻求帮助
发布于 2022-09-15 07:53:39
为了从匹配筛选器的第一个类中删除该学生,您可以在MongoDB中指定以下字段:
classes.$.students在C#中,您可以通过使用-1的索引来模拟这一点,例如:
var update = Builders<University>
.Update
.PullFilter(c => c.Classes.ElementAt(-1).Students, item => item.Id == "s02");https://stackoverflow.com/questions/73708655
复制相似问题