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

标签 javascript mongodb

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

这是数据库记录的示例

{
    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']}}

因此,这将返回集合“apple”、“orange”、“tomato”、“beef”中的所有记录。

我想查询“水果”、“蔬菜”、“肉类”以及仅查询“水果”数量超过 5 的记录,不查询其他记录。 所以结果将是

orange, tomato, beef

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

最佳答案

请尝试:

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

希望对您有所帮助。

关于javascript - MongoDB:如何使用特定规则查询$in中的特定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27954457/

相关文章:

javascript - 如何防止 Bootstrap 使字体变粗?

javascript - 如何在点击 react 时为唯一的一个元素切换类

mysql - 混合了 mongodb 和 mysql 的 rails 模型

node.js - 如何使用 Node.js 将对象数组正确转换为 CSV 文件?

javascript - 我怎样才能从java类获取变量数据到javascript?

javascript - JQuery - 为什么附加 "complex"内容需要一个字符串上的 jquery 对象数组?

javascript - 使用作为单引号字符串传递的值解析 JSON 对象

node.js - Mongod 未运行.. E 网络 [initandlisten] Listen() : bind() failed errno:98 Address already in use for socket: 0. 0.0.0:27017

javascript - 将用户信息从users.js发送到app.js

node.js - Raspberry Pi : MongoError: Server at localhost:27017 reports wire version 0, 但此版本的 Node.js 驱动至少需要 2 个 (MongoDB2.6)