c# - 如何仅获取数组 MongoDb 中的特定列表 - C#
问题描述
我只需要将包含即将到来的相同相等参数的列表带到前端
如何进入Dependentsbenefits
数组内部仅包含dependentId
等于的列表"70b39bed-e3e0-41e3-a5be-076623b9a909"
{
"_id": "b0164f61-a203-478b-becc-b9a67312981d",
"personalData": {
"_id": "b0164f61-a203-478b-becc-b9a67312981d",
"name": "asdasdsad",
"viewName": "asdasdsad",
"gender": "Masculino",
"birthDate": "1997-12-30T02:00:00.000Z",
"birthState": "Acre",
"birthCity": "Afonso Cláudio"
},
"Dependentsbenefits": [
{
"_id": "b0164f61-a203-478b-becc-b9a67312981d",
"id": "5f9bf75a-5c47-4a55-b17b-9f8bd26f3dee",
"dependentId": "70b39bed-e3e0-41e3-a5be-076623b9a909",
"type": {
"_id": "1",
"label": "Plano de Saúde",
"name": "healthPlan",
"required": false
}
},
{
"_id": "b0164f61-a203-478b-becc-b9a67312981d",
"id": "0899c807-10de-4ed2-b69a-abe97fe24aa2",
"dependentId": "70b39bed-e3e0-41e3-a5be-076623b9a909",
"type": {
"_id": "2",
"label": "Plano Odontológico",
"name": "dentalPlan",
"required": false
}
},
{
"_id": "b0164f61-a203-478b-becc-b9a67312981d",
"id": "7f7927f1-95aa-4ada-a0d6-08e9231977ec",
"dependentId": "e8139400-da15-4069-aef6-d566e71b4ca0",
"type": {
"_id": "1",
"label": "Plano de Saúde",
"name": "healthPlan",
"required": false
}
}
]
}
我尝试过使用下面的这种方法,但我的反馈必须是public async Task<List<Documents>> GetDocument(string ownerId, string dependentId)
public async Task<List<Documents>> GetDocument(string ownerId, string dependentId)
{
var query = from doc in _employee.AsQueryable()
where doc.ownerId == ownerId && doc.DependentsDocuments.Any(dep => dep.dependentId == dependentId)
select new Documents()
{
ownerId = doc.DependentsDocuments.ElementAt(-1).ownerId,
id = doc.DependentsDocuments.ElementAt(-1).id,
dependentId = doc.DependentsDocuments.ElementAt(-1).dependentId,
number = doc.DependentsDocuments.ElementAt(-1).number,
expiration = doc.DependentsDocuments.ElementAt(-1).expiration,
images = doc.DependentsDocuments.ElementAt(-1).images,
properties = doc.DependentsDocuments.ElementAt(-1).properties,
type = doc.DependentsDocuments.ElementAt(-1).type,
};
return query;
}
解决方案
在查询级别,您可以尝试 MongoDB 查询:
db.collection.aggregate([
{
$project: {
"_id":1,
"personalData":1,
"Dependentsbenefits": {
$filter: {
input: "$Dependentsbenefits",
as: "depend",
cond: { $eq: ["$$depend.dependentId", "70b39bed-e3e0-41e3-a5be-076623b9a909"] }
}
}
}
}
])
结果响应如下:
{
"_id" : "b0164f61-a203-478b-becc-b9a67312981d",
"personalData" : {
"_id" : "b0164f61-a203-478b-becc-b9a67312981d",
"name" : "asdasdsad",
"viewName" : "asdasdsad",
"gender" : "Masculino",
"birthDate" : "1997-12-30T02:00:00.000Z",
"birthState" : "Acre",
"birthCity" : "Afonso Cláudio"
},
"Dependentsbenefits" : [
{
"_id" : "b0164f61-a203-478b-becc-b9a67312981d",
"id" : "5f9bf75a-5c47-4a55-b17b-9f8bd26f3dee",
"dependentId" : "70b39bed-e3e0-41e3-a5be-076623b9a909",
"type" : {
"_id" : "1",
"label" : "Plano de Saúde",
"name" : "healthPlan",
"required" : false
}
},
{
"_id" : "b0164f61-a203-478b-becc-b9a67312981d",
"id" : "0899c807-10de-4ed2-b69a-abe97fe24aa2",
"dependentId" : "70b39bed-e3e0-41e3-a5be-076623b9a909",
"type" : {
"_id" : "2",
"label" : "Plano Odontológico",
"name" : "dentalPlan",
"required" : false
}
}
]
}
推荐阅读
- mysql - MySQL 作为 ADO NET 目标导致 System.NullReferenceException
- pandas - Pandas DataFrame .merge 不显示 Nan
- python - 如何避免这个 socket.error: [Errno 113] No route to host?
- node.js - 在猫鼬模式中填充嵌套对象的字段
- fluentd - 如何获得 fluentd / td-agent TLS/SSL 加密以使 in_forward 正常工作?
- r - 尝试将 R.exe 添加到 PATH
- r - R中的乘法列
- c# - C# - ConnectionString 属性尚未初始化
- bash - cPanel 备份脚本移动错误的文件
- javascript - 如何从禁用 javascript 的页面重定向到上一页?