MongoDB学习笔记(二)
六月 15, 2013 at 9:47 下午
—
Easton
上一篇文章简单介绍了下MongoDB数据库如何安装部署以及一些简单的指令,接下来我将介绍更多MongoDB数据库的更多指令。
在介绍指令之前我先补充下上一篇文章忘了说的一个知识点:
MongoDB是一个可移植的数据库,它在当前流行的每一个平台上都可以使用,拥有跨平台特性。在不同的操作系统上虽然略有差别,但是从整体构架上来看,MongoDB在不同的平台上是一样的,如数据逻辑结构和数据的存储等等。
因此我在文章中介绍的各种指令实际上在Linux平台下也是可以执行的,并不存在差异。
查询指令
在部署好了MongoDB数据库后系统会默认生成一个test数据库,而且连接数据库之后默认进入的就是test数据库,如果要切换到其他数据库可以使用前一篇文章介绍过的“use dbname”指令切换数据库。
test数据库中默认包含了一个person集合,我们下面的指令就围绕这个person集合来写。
插入数据
/*在person集合中增加一个文档*/
db.person.insert({name:"easton",sex:1,age:21})
/*增加100000条测试数据*/
for(var i = 0; i < 100000; i++){
var rand = parseInt(i * Math.random());
db.person.insert({name:"test" + i, age: rand});
}
查询数据
/*遍历所有数据(自动分页,输入“it”指令即可进入下一页)*/
db.person.find();
/*获取记录条数*/
db.person.find().count();
/*skip限制返回记录的起点,从第三条记录开始,返回五条记录*/
db.person.find().skip(3).limit(5);
/*sort排序*/
db.person.find().sort({age:1}); //升序
db.person.find().sort({age:-1}); //降序
/*条件查询*/
db.person.find({name:"test10000"});
/*大于 age > 10岁*/
db.person.find({age:{$gt:10}});
/*小于 age < 10岁*/
db.person.find({age:{$lt:10}});
/*大于等于 age >= 10*/
db.person.find({age:{$gte:10}});
/*小于等于 age <= 10*/
db.person.find({age:{$lte:10}});
/*$all 匹配[]所有值*/
db.person.find({age:{$all:[10,20]}});
/*$exists判断字段是否存在,查询所有存在age字段的记录*/
db.person.find({age:{$exists:true}});
/*null值的处理,如果需要查询age为null值的文档,并且过滤掉没有age字段的文档。*/
db.person.find({age:{$in:[null], $exists:true}});
/*$mod 取模运算,取age取模6等于1的数据*/
db.person.find({age:{$mod:[6,1]}});
/*$ne 不等于*/
db.person.find({age:{$ne:3}});
/*$in 包含*/
db.person.find({age:{$in:[7,8]}});
/*$nin 不包含*/
db.person.find({age:{$nin:[7,8]}});
本篇文章主要写了一些常用的MongoDB查询指令,以及一些高级的查询指令。