【发布时间】:2020-02-12 21:45:04
【问题描述】:
寻找返回 true 或 false(或 false 或类似时为空数组)的查询的帮助我需要查询集合中的几个文档by id,并且仅在所有文档都与查询匹配时才返回 true,如果一个或多个文档不匹配,我需要返回一个错误值。
如果文档看起来像下面的检查值是真和假,我希望从查询中返回一个假/空数组值,但如果检查全部为真,我想要一个真或整个数组。
如果常规的find 更合适,我可以使用它。
我尝试过使用常规的 $match,但它只返回匹配的文档。
我现在很喜欢,但觉得可以用更好的方式来做?
const coupons = await CouponModel.find({ id }, { checked: 1, _id: 0 });
const everyCouponIsChecked = coupons.every(data => data.checked === true);
谢谢。
Sample data:
[ { _id: 5e43e7831bc81503efa54c61,
id: 'foo',
checked: true,
},
{ _id: 5e43e7831bc81503efa54c61,
id: 'foo',
checked: true,
},{ _id: 5e43e7831bc81503efa54c61,
id: 'foo',
checked: false,
}]
const result = await MyModel.aggregate([
{
$match: {
id: 'foo',
checked: true,
},
},
]);
【问题讨论】:
标签: mongodb mongoose aggregation-framework