【发布时间】:2021-09-07 05:00:30
【问题描述】:
例如我们有下一个数据集:
balls = [
{
_id: 0,
color: 'red',
size: 10,
available: true,
},
{
_id: 1,
color: 'red',
size: 15,
available: false,
},
{
_id: 2,
color: 'blue',
size: 10,
available: true,
}
]
我想运行如下查询:
balls.every({ color: 'red' }, { available: true }); // should return false
balls.update({ color: 'red', available: false }, { available: true }); // set unavailable red ball to true
balls.every({ color: 'red' }, { available: true }); // should return true
在一种.every(query, condition) 类型中。如果query返回的文档全部匹配condition,则返回true,否则返回false。
否则,我将不得不获取所有匹配的文档,然后手动检查它们是否都可用。我可以使用上述解决方案节省这些步骤,而且成本会更低。
【问题讨论】:
-
是文档中的
balls数组字段还是所有3个对象都是集合中的根文档? -
balls是一个集合/模型
标签: mongodb mongoose mongodb-query aggregation-framework