我是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 集合属性的内容。
将访问数组设置为顶级集合/模型,您可以在服务器上按条件进行过滤。