Javascript 在Mongo中,如何将集合的所有项与更大的数组进行匹配?

Javascript 在Mongo中,如何将集合的所有项与更大的数组进行匹配?,javascript,mongodb,Javascript,Mongodb,假设我在一个集合中有3个项目: [ { id: 'a', items: [1, 2, 3] }, { id: 'b', items: [4, 5, 6] }, { id: 'c', items: [7, 8, 9] } ] 在JavaScript代码方面,我只有一个数组[5、2、6、4、7、8]。由于我的数组包含其项数组的所有元素(4、5和6),如何组合查询以仅从集合

假设我在一个集合中有3个项目:

[
    {
        id: 'a',
        items: [1, 2, 3]
    }, {
        id: 'b',
        items: [4, 5, 6]
    }, {
        id: 'c',
        items: [7, 8, 9]
    }
]
在JavaScript代码方面,我只有一个数组
[5、2、6、4、7、8]
。由于我的数组包含其
数组的所有元素(4、5和6),如何组合查询以仅从集合中选择第二个对象?

使用mongoDB可以筛选数组。首先找出给定数组和实际数据库数组的交集,然后使用set equals方法。检查以下查询:

db.collectionName.aggregate({
    "$project": {
    "checkAllElem": {
        "$setEquals": [{
            "$setIntersection": ["$items", [5, 2, 6, 4, 7, 8]]
        }, "$items"]
    },
    "items": 1
    }
}, {
    "$match": {
    "checkAllElem": true
    }
})

在这种情况下,纯javascript解决方案可以接受吗?我正在寻找一个Mongo查询,因为我给出的集合很小,db有数百万个文档。可能是Thank you Though@Yogesh的副本!这是完美的:)