如何在mongodb中使用$或运算符找到这两个条件

时间:2018-04-05 06:51:52

标签: javascript mongodb

我想获取emailaddress或phoneNumber匹配记录。我使用以下查询来获取结果。

user.find({ $or:[{emailAddress: "testemail@gmail.com" , phoneNumber: "123456789"}]})

但是当我使用查询结果显示0条记录时。

我想要的是:

{
    "phoneNumber" : "123456789",
    "emailAddress" : "testemail@gmail.com"
},
{
    "phoneNumber" : "8008465488",
    "emailAddress" : "testemail@gmail.com"
}

我怎样才能实现它?

2 个答案:

答案 0 :(得分:1)

您的查询稍作修改就可以了解

user.find({ $or:[{emailAddress: "testemail@gmail.com"} , {phoneNumber: "123456789"}]})

$or的语法 - { $or: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }

答案 1 :(得分:0)

你的筑巢已经关闭;如果我们添加一些缩进,我们可以看到$或正在给出一个包含一个项目的列表,该项目有两个属性:

$or: [
     {
            emailAddress: "testemail@gmail.com" ,
            phoneNumber: "123456789"
    }
]

你想要的是两种可能性的列表,每种可能性都有一个属性:

$or: [
     {
            emailAddress: "testemail@gmail.com"
     },
     {
            phoneNumber: "123456789"
    }
]