学习笔录之MongoDB小记

最近在学习 非关系型的数据库,MongoDB 。 听到这个词语感觉是有点陌生的吧,现在用的人也不是很多。 

之前学习过 oracle 接触过mysql,sqlserver 数据库。 但是都是属于关系型的数据库。 现在学习MongoDB,感觉稍有些吃力。 或者说是本人理解能力不太好吧。

来分享一下自己再学习过程中的东西吧,希望对想学习的朋友有帮助。

1. 基本命令
use db; 使用数据库
show dbs;  显示所有的数据库
show tables; 显示所有的表
it   继续/下一页

1. 添加记录
db.table.save({name:"jc"});
db.table.save({name:"jc",age:20});

2. 删除记录
db.table.remove({name:"jc"});   删除指定列的数据
db.table.remove();    删除整个表的数据
db.table.drop();    删除表

3. 修改记录
db.table.update({name:"mongo"},{$set:{name:"mongo_new"}});

4. 查询记录
db.table.find();   查询表的所有数据
db.table.findOne();   查询第一条记录
db.table.find({name:"jc"}); 带条件查询
db.table.find().limit(n);    查询n条数据

5. 条件操作符(>,<,>=,<=)
db.table.find({ "field" : { $gt: value } } ); // 大于: field > value 
db.table.find({ "field" : { $lt: value } } ); // 小于: field < value 
db.table.find({ "field" : { $gte: value } } );// 大于等于: field >= value 
db.table.find({ "field" : { $lte: value } } );// 小于等于: field <= value 
如果要同时满足多个条件,可以这样做
db.table.find({ "field" : { $gt: value1, $lt: value2 } } );//value1 < field < value

6. 条件操作符(类似sql的in) $all 匹配所有
这个操作符跟 SQL 语法的 in 类似,但不同的是, in 只需满足( )内的某一个值即可,  而$all 必
须满足[ ]内的所有值,例如: 
db.users.find({age : {$all : [6, 8]}});  
可以查询出  {name: 'David', age: 26, age: [ 6, 8, 9 ] }  
但查询不出  {name: 'David', age: 26, age: [ 6, 7, 9 ] }

7. $exists 判断值是否存在
db.users.find({age: {$exists: true}});   //存在 age字段的所有记录  
db.users.find({age: {$exists: false}});  //不存在 age字段的所有记录

8.  Null 的处理
db.c2.find({age:{"$in":[null], "$exists":true}})  //查找存在age字段,并且为空的 数据

9. $mod 求余运算符
db.student.find( { age: { $mod : [ 10 , 1 ] } } )  //age的值和10的余数等于1的数据


10. $ne 不等于(!= )
db.things.find( { age : { $ne : 3 } } );  //age不等于3的所有数据


11.  $in 包含(类似于sql的 in.. 在...里面)
db.c1.find({age:{$in: [7,8]}});

12.  $nin 不包含(类似于sql的 not in.. 不在...里面)
db.c1.find({age:{$nin: [7,8]}});

13. skip(n).limit(m)  从第n条到第m条记录
db.c1.find().skip(n).limit(m);

14. sort 排序
以年龄升序 asc 
db.users.find().sort({age: 1});  //按 age 升序排列
以年龄降序 desc 
db.users.find().sort({age: -1});  //按 age 降序排列

15. 游标 (俗称遍历)
-- 15.1
for( var c = db.t3.find(); c.hasNext(); ) { 
...    printjson( c.next()); 
... } 
{ "_id" : ObjectId("4fb8e4838b2cb86417c9423a"), "age" : 1 } 
{ "_id" : ObjectId("4fb8e4878b2cb86417c9423b"), "age" : 2 } 
{ "_id" : ObjectId("4fb8e4898b2cb86417c9423c"), "age" : 3 } 
{ "_id" : ObjectId("4fb8e48c8b2cb86417c9423d"), "age" : 4 } 
{ "_id" : ObjectId("4fb8e48e8b2cb86417c9423e"), "age" : 5 }

-- 15.2
db.t3.find().forEach( function(u) { printjson(u); } ); 
{ "_id" : ObjectId("4fb8e4838b2cb86417c9423a"), "age" : 1 } 
{ "_id" : ObjectId("4fb8e4878b2cb86417c9423b"), "age" : 2 } 
{ "_id" : ObjectId("4fb8e4898b2cb86417c9423c"), "age" : 3 } 
{ "_id" : ObjectId("4fb8e48c8b2cb86417c9423d"), "age" : 4 }









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值