猫鼬-对嵌套数组中的所有元素有效的条件

时间:2020-09-19 02:41:03

标签: javascript mongoose filter

我的文档具有嵌套的对象数组。这些“ item”对象的一个​​字段是“ totalPrice”。

我希望能够以仅返回具有完全满足过滤条件的items数组的docs的文档的方式过滤文档,这意味着数组中的每个对象的价格都低于过滤条件。

我当前的查询如下:

MyObjModel.find({"items.totalPrice": { $lt: 100 } })

我的期望是,它仅返回价格低于100的每个项目的文档。但是,它返回仅一个数组的项目满足要求的文档,因此尽管第二个项目不满足价格要求,它将返回此文档。查询。

{
   items: [{totalPrice: 88}, {totalPrice: 120}]
}

我该如何更改查询对象?

1 个答案:

答案 0 :(得分:1)

您可以查找没有任何物品的价格大于或等于100的文档,而不是查找每个物品的价格小于100的文档。

Model.find({'items.totalPrice': {$not: {$gte: 100}}})

Mongo Playground

相关问题