MongoDB: 如何使用特定规则查询$in 中的特定元素?

MongoDB: how to query with a specific rule for a specific element in $in?

老实说,我怀疑这是否可能,但只是试一试。

这是一个数据库记录的例子

{
    type: 'fruit',
    name: 'apple',
    quantity: 3
}
{
    type: 'fruit',
    name: 'orange',
    quantity: 10
}
{
    type: 'vegetable',
    name: 'tomato',
    quantity: 4
}
{
    type: 'meat',
    name: 'beef',
    quantity: 2
}

那么这里是查询

{type: { $in: ['fruit', 'vegetable', 'meat']}}

所以这将 return 集合 'apple'、'orange'、'tomato'、'beef'.

中的所有记录

我想查询'fruit'、'vegetable'、'meat'以及'fruit' only but not others的数量大于5的记录。 所以结果将是

orange, tomato, beef

不确定我的解释是否合理,但这是一个可能的查询吗?或者我应该去查询两次? 感谢阅读。

请尝试:

{ 
    $or: [
        { type: { $in: ['vegetable', 'meat'] } },
        { type: { $in: ['fruit'] }, quantity: { $gt: 5 } } 
    ]
}

希望对您有所帮助。