Arrays 在Mongo中,如何在条件中使用$In,并使用来自另一个字段的值?

Arrays 在Mongo中,如何在条件中使用$In,并使用来自另一个字段的值?,arrays,mongodb,Arrays,Mongodb,数据: 我想查找col2_数组包含col1_数组任何值的所有文档。我尝试使用$IN条件,但未能将其他字段内容引用为数组。我该怎么办 { _id :1111, col1_array : ['a','b','c'], col2_array : ['a','f','g'] } 之后,您必须查找此特定id的记录 db.collection.aggregate([ { $unwind: "$col2_array" }, { $project: {

数据:

我想查找col2_数组包含col1_数组任何值的所有文档。我尝试使用$IN条件,但未能将其他字段内容引用为数组。我该怎么办

{
_id :1111,
col1_array : ['a','b','c'],
col2_array : ['a','f','g']
}
之后,您必须查找此特定id的记录

db.collection.aggregate([
    { $unwind: "$col2_array" },
    {
        $project:
        {
            index: { $indexOfArray: ["$col1_array", "$col2_array"] },
            col2_array: 1,
            col1_array: 1,
            _id: 1
        }
    },
    { $match: { index: { $gte: 0 } } },
    { $group: { _id: "$_id" } }
])

我终于用我刚刚发现的挖掘Mongo文档解决了这个问题:

db.collection.find({_id:{$in:[result_of_above_query_ids]}})

非常感谢,但我终于找到了另一种方法,使用我刚刚发现的阵列交点。
db.getCollection('test').aggregate([
{$set : {
    commonValues: { $setIntersection: [ "$col1_array", "$col2_array"]},
}},
{$match : {"commonValues" : {"$ne" : []}}}

])