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查询指令,以及一些高级的查询指令。

 

Posted in: MongoDB

Tags: , , ,

添加评论

  Country flag

biuquote
  • 评论
  • 在线预览
Loading