2
これをどのようにタイトル付けするかはわかりませんでした。配列フィールドのすべての値が別の配列に存在するドキュメントを選択
だから私は、製品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
}
しかし、それは私も試した
製品IDのリストに存在しなくても99かかわらず、ジョン、返します。
'products' : {
'$all': productIds
}
顧客のどれもがすべての製品を持っていないので、何も返さない
私は単一のクエリで必要なものを達成する方法があるのですか、いくつかのポストクエリ処理を行う必要がありますか?
私も
'products': {
'$in': productIds,
'$not': {
'$nin': productIds
}
}
を試してみましたが、これはまた、必ずしもすべての製品IDはあなたが.aggregate()
方法と$redact
演算子を使用してこれを行うことができます