如果字段包含在数组中,我希望有一个返回布尔值的步骤,如:
$project: {
// would return whether the field 'type' is banana or apple
isFruit: { $type: { $in: ['apple', 'banana'] } },
},
但这不起作用。看doc,我看不到包含测试的内容。这可能吗?
答案 0 :(得分:1)
这有点令人费解,但您可以使用$filter
将输入数组过滤为匹配type
的元素(如果有),然后将结果与{进行比较{1}}:
[]
请注意,MongoDB 3.2中添加了db.test.aggregate([
{$project: {
isFruit: { $ne: [[], { $filter: {
input: ['apple', 'banana'],
as: 'fruit',
cond: { $eq: ['$$fruit', '$type'] }
}}]}
}}
])
。