【发布时间】:2015-01-27 12:25:39
【问题描述】:
我有一个场景,我认为我可能需要使用 $cond 根据字符串数组中是否存在现有属性来设置 $project(聚合)中的属性。
以下面的数据作为一个简化的例子……
var teamMemberFilter = ['Dave', 'Kate'];
[
{
ticketId: '1',
ticketDesc: 'Dummy ticket 1',
assignments: [
{
asignee: 'Team',
email: 'supportinbox@mysite.com'
},
{
asignee: 'Dave',
email: 'dave@mysite.com'
},
{
asignee: 'Kate',
email: 'kate@mysite.com'
}
]
},
{
ticketId: '2',
ticketDesc: 'Dummy ticket 2',
assignments: [
{
asignee: 'Team',
email: 'supportinbox@mysite.com'
},
{
asignee: 'Rob',
email: 'rob@mysite.com'
}
]
},
{
ticketId: '3',
ticketDesc: 'Dummy ticket 3',
assignments: [
{
asignee: 'Team',
email: 'supportinbox@mysite.com'
},
{
asignee: 'Dave',
email: 'dave@mysite.com'
},
{
asignee: 'Mark',
email: 'mark@mysite.com'
}
]
}
]
我想要一个查询,它返回所有带有团队分配的工单,并且没有团队成员的分配。
在上面的示例中,应该只返回工单 2,因为它有一个团队分配,并且同一张工单中的唯一其他分配属于 Rob,它不属于该团队(在 teamMemberFilter 中指定)。
【问题讨论】:
-
你真的需要来计划这个吗?或者您只是想获取符合这些条件的文档?
-
只是符合条件的文件,我可能过于复杂了!
标签: mongodb mongoose mongodb-query aggregation-framework