【发布时间】:2016-09-19 11:21:29
【问题描述】:
我不太确定如何命名!
所以我有一个产品 ID 数组
var productIds = [139,72,73,1,6]
还有一堆MongoDB中的客户文档
{
name: 'James',
products: [ 73, 139 ],
_id: 5741cff3f08e992598d0a39b
}
{
name: 'John',
products: [ 72, 99 ],
_id: 5741d047f08e992598d0a39e
}
我想在所有产品都出现在产品 ID (productIds) 数组中时找到客户
我试过了:
'products' : {
'$in': productIds
}
但这会返回 John,即使产品 ID 列表中不存在 99
我也试过了:
'products' : {
'$all': productIds
}
没有任何回报,因为没有客户拥有所有产品
有没有办法在单个查询中实现我所需要的,还是我必须做一些查询后处理?
我也试过
'products': {
'$in': productIds,
'$not': {
'$nin': productIds
}
}
但这似乎也会在并非所有产品 ID 都匹配时返回客户
【问题讨论】:
标签: node.js mongodb mongodb-query aggregation-framework