Mongo聚合 - 表达式中的$?

时间:2016-09-21 01:36:30

标签: mongodb aggregation-framework

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

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

但这不起作用。看doc,我看不到包含测试的内容。这可能吗?

1 个答案:

答案 0 :(得分:1)

这有点令人费解,但您可以使用$filter将输入数组过滤为匹配type的元素(如果有),然后将结果与{进行比较{1}}:

[]

请注意,MongoDB 3.2中添加了db.test.aggregate([ {$project: { isFruit: { $ne: [[], { $filter: { input: ['apple', 'banana'], as: 'fruit', cond: { $eq: ['$$fruit', '$type'] } }}]} }} ])