如何在猫鼬中搜索多个布尔值对象?

时间:2020-02-03 07:18:05

标签: node.js mongodb express mongoose mongodb-query

希望你一切都好。

我正在寻找猫鼬问题的解决方案, 我的用户集合中有一个对象字段(让我们说:vehicleStatus)。其中有一些键(所有都是布尔值)。现在,我想基于这个vehicleStatus字段从“用户”集合中搜索。

这是我的架构-

vehicleStatus: {
    _id: false,
    twoWheeler: Boolean,
    fourWheeler: Boolean
},

现在,我正在搜索用户是否具有twoWheeler,fourWheeler或两者都有。例如,假设John doe具有{twoWheeler:true,fourWheeler:false}。那么在猫鼬中搜索这种(vahicleStatus)字段的最佳方法是什么。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

现在,我正在搜索用户是否具有twoWheeler,fourWheeler 两者

User.find({
    $expr: {
        $or: [{
            $eq: ['$vehicleStatus.twoWheeler', true]
        }, {
            $eq: ['$vehicleStatus.fourWheeler', true]
        }]
    }
}).then(console.log).catch(console.log);

您可以在此处Mongo Playground

进行检查

答案 1 :(得分:0)

您可以像这样搜索您的匹配值:

const users = await User.find({
  'vehicleStatus.twoWheeler': true,
  'vehicleStatus.fourWheeler': true,
});

您也可以放置变量而不是true