Condition Operator

为了测试,我们首先进行数据准备。

db.col.find().pretty();
{
	"_id" : ObjectId("59396dd67ad7ebedf2146587"),
	"title" : "MongoDB",
	"description" : "MongoDB 是一个 Nosql 数据库",
	"by" : "Runoob",
	"url" : "http://www.runoob.com",
	"tags" : [
		"mongodb",
		"NoSQL"
	],
	"likes" : 110
}

首先对数据进行清除

> db.col.remove({});
WriteResult({ "nRemoved" : 1 })

插入数据

> db.col.insert({
...     title: 'PHP 教程', 
...     description: 'PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。',

...     by: '菜鸟教程',
...     url: 'http://www.runoob.com',
...     tags: ['php'],
...     likes: 200
... });
WriteResult({ "nInserted" : 1 })

> db.col.insert({title: 'Java 教程', 
...     description: 'Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。',
...     by: '菜鸟教程',
...     url: 'http://www.runoob.com',
...     tags: ['java'],
...     likes: 150
... });
WriteResult({ "nInserted" : 1 })

> db.col.insert({title: 'MongoDB 教程', 
...     description: 'MongoDB 是一个 Nosql 数据库',
...     by: '菜鸟教程',
...     url: 'http://www.runoob.com',
...     tags: ['mongodb'],
...     likes: 100
... });
WriteResult({ "nInserted" : 1 })
  • MongoDB (>) 大于操作符 - $gt

如果你想获取 “col” 集合中 “likes” 大于 100 的数据,你可以使用以下命令:

db.col.find({"likes" : {$gt : 100}})

类似于SQL语句:

Select * from col where likes > 100;
  • MongoDB(>=)大于等于操作符 - $gte

如果你想获取”col”集合中 “likes” 大于等于 100 的数据,你可以使用以下命令:

db.col.find({likes : {$gte : 100}})

类似于SQL语句:

Select * from col where likes >=100;
  • MongoDB (<) 小于操作符 - $lt

如果你想获取”col”集合中 “likes” 小于 150 的数据,你可以使用以下命令:

db.col.find({likes : {$lt : 150}})

类似于SQL语句:

Select * from col where likes < 150;
  • MongoDB (<=) 小于操作符 - $lte

如果你想获取”col”集合中 “likes” 小于等于 150 的数据,你可以使用以下命令:

db.col.find({likes : {$lte : 150}})

类似于SQL语句:

Select * from col where likes <= 150;
  • MongoDB 使用 (<) 和 (>) 查询 - $lt 和 $gt

如果你想获取”col”集合中 “likes” 大于100,小于 200 的数据,你可以使用以下命令:

db.col.find({likes : {$lt :200, $gt : 100}})

类似于SQL语句:

Select * from col where likes>100 AND  likes<200;

$type Operator

在本章节中,我们将继续讨论MongoDB中条件操作符 $type。

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

MongoDB 中可以使用的类型如下表所示:

类型 数字 备注
Double 1  
String 2  
Object 3  
Array 4  
Binary data 5  
Undefined 6 已废弃。
Object id 7  
Boolean 8  
Date 9  
Null 10  
Regular Expression 11  
JavaScript 13  
Symbol 14  
JavaScript (with scope) 15  
32-bit integer 16  
Timestamp 17  
64-bit integer 18  
Min key 255 Query with -1.
Max key 127  
  • 实例

如果想获取 “col” 集合中 title 为 String 的数据,你可以使用以下命令:

db.col.find({"title" : {$type : 2}})

输出结果为:

db.col.find({"title" : {$type : 2}}).pretty();
{
	"_id" : ObjectId("593abda34599370cf6e7e7fb"),
	"title" : "PHP 教程",
	"description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。",
	"by" : "菜鸟教程",
	"url" : "http://www.runoob.com",
	"tags" : [
		"php"
	],
	"likes" : 200
}
{
	"_id" : ObjectId("593abdb34599370cf6e7e7fc"),
	"title" : "Java 教程",
	"description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。",
	"by" : "菜鸟教程",
	"url" : "http://www.runoob.com",
	"tags" : [
		"java"
	],
	"likes" : 150
}
{
	"_id" : ObjectId("593abdc64599370cf6e7e7fd"),
	"title" : "MongoDB 教程",
	"description" : "MongoDB 是一个 Nosql 数据库",
	"by" : "菜鸟教程",
	"url" : "http://www.runoob.com",
	"tags" : [
		"mongodb"
	],
	"likes" : 100
}

Limit() & Skip()

  • MongoDB Limit() 方法

如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

limit()方法基本语法如下所示:

> db.COLLECTION_NAME.find().limit(NUMBER)

实例

> db.col.find({},{"title":1,_id:0}).limit(2);
{ "title" : "PHP 教程" }
{ "title" : "Java 教程" }
> db.col.find({},{"title":1,_id:0});
{ "title" : "PHP 教程" }
{ "title" : "Java 教程" }
{ "title" : "MongoDB 教程" }
  • MongoDB Skip() 方法

我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

skip() 方法脚本语法格式如下:

> db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

实例

> db.col.find({},{"title":1,_id:0}).limit(1).skip(1);
{ "title" : "Java 教程" }

注: skip()方法默认参数为 0