最近在学习 非关系型的数据库,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 }