RDBMS Where子句等效于MongoDB

查询文档在一些条件的基础上,可以使用下面的操作

操作语法示例RDBMS等效语句
Equality{<key>:<value>}db.mycol.find({"by":"yiibai tutorials"}).pretty()where by = 'yiibai tutorials'
Less Than{<key>:{$lt:<value>}}db.mycol.find({"likes":{$lt:50}}).pretty()where likes < 50
Less Than Equals{<key>:{$lte:<value>}}db.mycol.find({"likes":{$lte:50}}).pretty()where likes <= 50
Greater Than{<key>:{$gt:<value>}}db.mycol.find({"likes":{$gt:50}}).pretty()where likes > 50
Greater Than Equals{<key>:{$gte:<value>}}db.mycol.find({"likes":{$gte:50}}).pretty()where likes >= 50
Not Equals{<key>:{$ne:<value>}}db.mycol.find({"likes":{$ne:50}}).pretty()where likes != 50

AND 在 MongoDB

语法

在 find()方法,如果您传递多个键通过","将它们分开,那么MongoDB对待它就如AND条件一样。基本语法如下所示:

>db.mycol.find({key1:value1, key2:value2}).pretty()

例子

下面给出的例子将显示所有教程含“yiibai tutorials”和其标题是“MongoDB Overview”

>db.mycol.find({"by":"yiibai tutorials","title": "MongoDB Overview"}).pretty()
{
"_id": ObjectId(7df78ad8902c),
"title": "MongoDB Overview",
"description": "MongoDB is no sql database",
"by": "yiibai tutorials",
"url": "http://www.yiibai.com",
"tags": ["mongodb", "database", "NoSQL"],
"likes": "100"
}
>

对于上面给出的例子相当于where子句:' where by='yiibai tutorials' AND title='MongoDB Overview' '。可以传递任何数目的键-值对在find子句。

OR 在 MongoDB

语法

要查询基于OR条件的文件,需要使用$or关键字。OR的基本语法如下所示:

>db.mycol.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()

例子

下面给出的例子将显示所有撰写含有 'yiibai tutorials' 或是标题为 'MongoDB Overview' 的教程

>db.mycol.find({$or:[{"by":"tutorials point"},{"title": "MongoDB Overview"}]}).pretty()
{
"_id": ObjectId(7df78ad8902c),
"title": "MongoDB Overview",
"description": "MongoDB is no sql database",
"by": "yiibai tutorials",
"url": "http://www.yiibai.com",
"tags": ["mongodb", "database", "NoSQL"],
"likes": "100"
}
>

使用 AND 和 OR 在一起

例子

下面给出的例子显示有喜欢数大于100 的文档,其标题要么是 'MongoDB Overview' 或 'yiibai tutorials'. 等效于SQL的where子句:'where likes>10 AND (by = 'yiibai tutorials' OR title = 'MongoDB Overview')'

>db.mycol.find("likes": {$gt:10}, {$or: [{"by": "yiibai tutorials"}, {"title": "MongoDB Overview"}] }).pretty()
{
"_id": ObjectId(7df78ad8902c),
"title": "MongoDB Overview",
"description": "MongoDB is no sql database",
"by": "yiibai tutorials",
"url": "http://www.yiibai.com",
"tags": ["mongodb", "database", "NoSQL"],
"likes": "100"
}
>
05-26 08:15