MongoDB基础知识-查询(一)

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

创建示例集合

首先我们在MongoDB中创建一个用于示例操作的集合,详细的代码如下:
for(var i = 0; i < 1000; i++){ db.test.insert({"username":"username"+i,"number":i}) };

查询

find
无条件查询

db.test.find();
结果如下所示:

MongoDB基础知识-查询(一)_第1张图片
无条件查询

db.test.find();

有条件查询

db.test.find({"username":"username0"});
结果如下所示:

有条件查询

返回特定的键

db.test.find({"username":"username0"},{"username":1,"_id":0});
结果如下所示:

返回特定的键

findOne

db.test.findOne();
结果如下所示:

MongoDB基础知识-查询(一)_第2张图片
返回单个

SQL(MySQL)类比

无条件查询

db.test.find()等同于select * from test;

有条件查询

db.test.find({"username":"username0"})等同于select * from test where username="username0"

返回特定的键

db.test.find({"username":"username0"},{"username":1,"_id":0})等同于select username from test where username="username0"

findOne

findOne返回的是首个文档,这和sql中使用limit限制有点类似,返回的是查询集合中的第一条记录(文档)。

需要注意的是find返回的是一个游标,findOne返回的是一个文档,通常意义上通过find查询出来还需要通过循环语句去处理一下才能获取到希望使用的数据。

你可能感兴趣的:(MongoDB基础知识-查询(一))