条件在mongoDB中不起作用

时间:2014-07-22 06:55:36

标签: mongodb cakephp

我是mongoDB的新手。我的实际数据包含以下信息

> db.admins.find();
{ "_id" : ObjectId("53cdfb5518dd87a6169c7907"), 
  "username" : "admin", 
  "email" : "sadikhasan.palsaniya@slktechlabs.com", 
  "password" : "b3dfaf29547a69faaaaf63e1223bb4c479c80203" }

当我写下面的查询时,它返回none(没有任何记录)

> db.admins.find( {"OR":{"username":"admin","email":"admin"},
                   "AND":{"password":"b3dfaf29547a69faaaaf63e1223bb4c479c80203"}
                  });

我错在哪里我不知道为什么它不起作用。如果需要更多信息,我会帮助您。

1 个答案:

答案 0 :(得分:1)

  1. 所有MongoDB运营商都以$开头,并且是小写的。
  2. $or运算符采用一组对象,其中只需要满足一个条目
  3. 在大多数情况下,
  4. $and是多余的。传递具有多个字段的对象时,默认情况下都必须满足它们。
  5. 所以试试这个:

    db.admins.find({
        "$or":[ 
              { "username":"admin" },
              { "email":"admin" }
        ],
        "password":"b3dfaf29547a69faaaaf63e1223bb4c479c80203"}
    });