Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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 Mongo聚合-$在表达式中?_Mongodb_Aggregation Framework - Fatal编程技术网

Mongodb Mongo聚合-$在表达式中?

Mongodb Mongo聚合-$在表达式中?,mongodb,aggregation-framework,Mongodb,Aggregation Framework,如果数组中包含字段,我希望有一个返回布尔值的步骤,如: $project: { // would return whether the field 'type' is banana or apple isFruit: { $type: { $in: ['apple', 'banana'] } }, }, 但这不起作用。看一下,我没有看到包含测试。这可能吗?这有点复杂,但您可以通过使用筛选输入数组,使其仅匹配类型的元素(如果有),然后将结果与[]进行比较: db.test.aggreg

如果数组中包含字段,我希望有一个返回布尔值的步骤,如:

$project: {
   // would return whether the field 'type' is banana or apple
  isFruit: { $type: { $in: ['apple', 'banana'] } },
},

但这不起作用。看一下,我没有看到包含测试。这可能吗?

这有点复杂,但您可以通过使用筛选输入数组,使其仅匹配
类型的元素(如果有),然后将结果与
[]
进行比较:

db.test.aggregate([
    {$project: {
        isFruit: { $ne: [[], { $filter: {
            input: ['apple', 'banana'],
            as: 'fruit',
            cond: { $eq: ['$$fruit', '$type'] }
        }}]}
    }}
])

请注意,
$filter
是在MongoDB 3.2中添加的。

看起来很棒!关于可能的性能缺陷有什么想法吗?@Guig我不确定它的可扩展性如何,您必须在实际场景中进行测试。