在php中使用几个条件的mongodb查询

时间:2017-06-20 14:43:30

标签: mongodb

像这样的SQL查询:

if($this->config['features']['email_login'] === true) $query ="SELECT ID,  PASSWORD FROM user WHERE username =? OR email=?  ORDER BY ID LIMIT 1";}

我没有正确地知道这个mongo查询..但是我可以尝试很多方式..如果任何人都知道可以在php中写这个查询..我可以在sql上面告诉这个查询可以将它转换为monogodb with PHP。 我可以在mongodb中执行此查询,但使用php无法正常工作

db.people.find(
    { $or: [ { status: "A" } ,
             { age: 50 } ] },
{ user_id: 1, status: 1, _id: 0 }
)

我可以用php这样试试

$db->find(array(
    'ID' => $Id,
    '$or'=> array(
        array('username'=>'smart' ),
        array('email' => 'smart@gmail.com')),
    ),
));

2 个答案:

答案 0 :(得分:1)

您正试图从数据库中获取记录,因此您不必使用find()sort,您可以尝试使用findOne()函数

$db->findOne(array(
        'ID' => $Id,
        '$or' => array(
            array('username' => 'smart'),
            array('email' => 'smart@gmail.com')),
    ));

答案 1 :(得分:0)

查询非常简单。在您的特定情况下,我将使用以下查询:

db.myCollection.find({username:"theUsername", email:"theEmail"}, {id:1, password:1}).sort({id:1}).limit(1)