Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mongodb中使用$elemmatch比较两个阵列?_Mongodb_Mongodb Query - Fatal编程技术网

如何在mongodb中使用$elemmatch比较两个阵列?

如何在mongodb中使用$elemmatch比较两个阵列?,mongodb,mongodb-query,Mongodb,Mongodb Query,我需要比较两个数组,以确定第一个数组中的所有元素是否与第二个数组匹配 第一个阵列: var tasktime = [2,3,4]; 第二个阵列: 'working_days': [ { 'slots': [ 8, 9, 14, 15 ] } ]; 我需要检查“tasktime”数组中的所有元素是否都存在于“slots”数组中 下面是我尝试过但没有得到预期结果的查询

我需要比较两个数组,以确定第一个数组中的所有元素是否与第二个数组匹配

第一个阵列:

var tasktime = [2,3,4];
第二个阵列:

'working_days': [ 
                {
                    'slots': [ 8, 9, 14, 15 ]
                }
            ];
我需要检查“tasktime”数组中的所有元素是否都存在于“slots”数组中

下面是我尝试过但没有得到预期结果的查询

var defaultCondition = [
                        {
                            query: {
                                "working_days": { $elemMatch: { slots: { $setIntersection: [ 'slots', tasktime ] } } }
                            }
                        }
                    ];

db.GetAggregation('tasker', defaultCondition, function (err, taskers) {
    if (err || !taskers[0]) {
        res.send({ count: 0, result: [] });
    } else {
        callback(err, taskers);
    }
});
需要有人在这方面提供有价值的帮助

您需要使用查找
taskTime
数组中的所有值

您可以简单地执行以下操作:

db.tasker.find({"working_days.slots" : {$all : taskTime}});
您需要使用查找
taskTime
数组中的所有值

您可以简单地执行以下操作:

db.tasker.find({"working_days.slots" : {$all : taskTime}});