我有以下架构的收藏模型:
{
"id":"122HSHDJS2333222222",
"name":"Item1",
"image":"",
"is_deleted":false,
"item_blocked_on":[
{
"start_date":"2017-02-15T18:30:00.000Z",
"end_date":"2017-02-24T18:30:00.000Z"
},
{
"start_date":"2017-01-16T18:30:00.000Z",
"end_date":"2017-01-26T18:30:00.000Z"
},
]
}
以上型号代表这些"项目"被阻止,因为这些开始日期结束,因此无法显示
现在在我的情况下,用户将发送" from_date"和" end_date"从客户端。 我想要的是,查询应返回" items"哪些是"可用"用于显示用户开始和结束日期。
我的查询,返回错误响应: -
{
where:{
and:[
{
and:[
{
or:[{"item_blocked_on.start_date": {"gt": new Date(from_date)}},{"item_blocked_on.end_date": {"lt": new Date(from_date)}}],
},
{
or:[{"item_blocked_on.start_date": {"gt": new Date(end_date)}},{"item_blocked_on.end_date": {"lt": new Date(end_date)}}],
}
]
},
{
"is_deleted":false
}
]
}
};
如果我不清楚或做错事,请告诉我。
由于
答案 0 :(得分:0)
根据您的要求,您可以轻松使用$ elemMatch,如示例所示。
||
希望这会有所帮助