[英]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.