如何从 mongodb 中的数组中仅获取条件满足/匹配对象?



我是MongoDB的新手。

这是我的"主病人"收藏,它有很多文件。 每个文档都包含"访问"数组,每个访问数组包含多个对象。我只想要那些对我的输入感到满意的对象。 我预计仅低于预期输出。如果设施与我的输入匹配,并且访问日期范围与我提供的输入匹配,则查询应仅返回该对象,如下所示。

_id:5ef59134a3d8d92e580510fe
flag:0
name:"emicon_test"
dob:2020-06-25T00:00:00.000+00:00
visits:[
{
visit:2020-06-09T10:36:10.635+00:00,
facility:"Atria Lady Lake"
},
{ 
visit:2020-05-09T10:36:10.635+00:00,
facility:"demo"
}]

_id:5ee3213040f8830e04ff74a8
flag:0
name:"xyz"
dob:1995-06-25T00:00:00.000+00:00
visits:[
{
visit:2020-05-01T10:36:10.635+00:00,
facility:"pqr"

},
{
visit:2020-05-15T10:36:10.635+00:00,
facility:"demo"

},
{  
visit:2020-05-09T10:36:10.635+00:00,
facility:"efg"
}]

我的查询输入参数是 facility='demo',访问日期范围是从"2020 年 5 月 1 日"到"2020 年 5 月 10 日">

预期输出:

_id:5ef59134a3d8d92e580510fe
flag:0
name:"emicon_test"
dob:2020-06-25T00:00:00.000+00:00
visits:[
{ 
visit:2020-05-09T10:36:10.635+00:00,
facility:"demo"
}]

提前谢谢。

我得到了答案。

MasterPatientModel.aggregate([
{
'$unwind':"$visits"
},
{"$match": {"visits.visit": {"$gte": new Date(req.body.facilitySummaryFromdate), "$lte": new Date(req.body.facilitySummaryTodate)
} ,  "visits.facility":  req.body.facilitySummary
}
}
])

不能在服务器上筛选 mongo 集合属性的内容。

将访问数组设置为顶级集合/模型,您可以在服务器上按条件进行过滤。

相关内容

  • 没有找到相关文章

最新更新