MongoDB 知一二(一)

mongoDB是一种介于关系型 非关系型中间的数据库。本着拓展知识面的想法,编辑了这篇博客。参考的博客链接如下:http://www.cnblogs.com/knowledgesea/p/4631712.html。

本文只记录如何使用,至于如何安装可以百度其他博客。其安装方法并无什么难点。

/*mongodb 是nosql中面向文档的数据库 介于关系型 非关系型之间
  mongodb 的文档 相当于关系型数据库中的一行数据
  多个文档的集合 就相当于系型数据库表
  多个集合 组合在一起就是一个数据库
  支持多个数据库 (mysql很像啊)*/


/*创建数据库*/
use wdb;

/*插入一条数据  insert 里面 是json数据 json数据是一种轻量级的数据交换格式 方便传递 方便解析
  姓名张三  拥有财富 12w
  保存还可以使用save 好神奇*/
db.wuser.insert({"name": "张三", "money": 12});

/* 查看数据库 */
show dbs;

/*查看数据库下的表 和mysql一样呢*/
show tables;

/*除了转换 还有切换的意思 和mysql 一样呢*/
use wdb;

/*表查询 应该就是sql语句中的 select * from 。。。。*/
db.wuser.find();

/*加条件进行插叙 应该就是sql语句中的 select * from wuser where name = '张三'*/
/*可以查询到*/
db.wuser.find({"name": "张三"});
/*查询不到*/
db.wuser.find({"name": "李四"});

/*修改
  张三的财富变成20w啦   前一个是条件 后一个是要修改的财富
  重要的事情说三遍
  update 后面的name 要加上偶要不 会出现数据丢失呢
  update 后面的name 要加上偶要不 会出现数据丢失呢
  update 后面的name 要加上偶要不 会出现数据丢失呢
*/
db.wuser.update({"name": "张三"}, {"money" : 20, "name" : "张三", "age" : 17});


/*创造20w财富的是李四 */
db.wuser.update({"money": 20}, {"name" : "李四", "money" : 20});

db.wuser.find();


/*删除表数据  相当于SQL 的 delete from wuser where name = '李四'*/
db.wuser.remove({"name" : "李四"});

/*增删改查 和结构化查询语言不一样的地方 最重要的就是 我可以随便更换表的列 而不像sql的表要对应列插入*/


/*有关mongodb的其他命令*/
/*显示当前数据库的名称*/
db;

db.getName();

/*删除数据库 有点草率啊*/
db.dropDatabase();

/*修复当前数据库*/
db.repairDatabase();

/*显示数据库版本*/
db.version();

/*服务ip 以及端口*/
db.getMongo();

/*数据库状态 试验了一下 确实可以获取很多信息*/
db.stats();

/*显示数据库下的表*/
show tables;

db.getCollectionNames();

show collections;

/*删除表 类似于 sql 的drop table */
db.wuser.drop();

/*mongodb 接入javascript风格语
  颇有点Oracle 存储过程的意思呢*/

p = {"name": "李四", "money" : 40};
db.wuser.save(p);
p = {"name": "王五", "money" : 30};
db.wuser.insert(p);

db.wuser.find()


/*for循环   var定义 js中定义变量的方法*/
for (var i = 1; i < 2; i++)
db.wuser.insert({"name" : "周" + i, "money" : 10});

/*while 循环查询 语句换行查询貌似存在问题 只能查询最后一行*/
var cursor = db.wuser.find();  while(cursor.hasNext())  printjson(cursor.next());

/*foreach 使用*/
db.wuser.find().forEach(printjson);

/*数组使用 顺便测试了一下大小写 好像是区分大小写的*/
var array = db.wuser.find().toArray(); array[2];

/*查询条数 限制*/
db.wuser.findOne({"name" : "李四"});
db.wuser.find().limit(3);

/*高级查询
  面向文档的NoSql数据库重要解决的问题不是高性能的并发读写问题,而是保证海量数据存储的同时,具有比一般数据库更加良好的查询性能*/

/*条件语句 大于 $gt 小于 $lt $gte 大于等于 $lte 小于等于
  这算是一种创新啊 以前么见过呢*/
db.wuser.find({"money": {$gt:10}});

db.wuser.find({"money": {$lte:10}});

/*$all 类似于sql 的in*/
db.wuser.insert({"name": "狗十三", "money" : [3, 2]});
db.wuser.find({"money" : {$all:[10]}});

/*判断字段是否存在*/
db.wuser.find({name:{$exists:true}});

/*$mod 取模 除以一个数 余一个数*/
db.wuser.find({money:{$mod:[10,0]}});

/*$ne  可以这么记 not equal*/
db.wuser.find({money:{$ne: 10}});

/*$in $nin 在 与 不在*/
db.wuser.find({money:{$in:[10, 40]}});

db.wuser.find({money:{$nin:[10, 40]}});

/*数组个数*/
db.wuser.find({money:{$size:2}});

/*$not 类似于结构化查询语句中的not like*/
db.wuser.find({name:{$not:/^张.*/}});

/*第四条开始查询*/
db.wuser.find().skip(4);

/*只查询两条*/
db.wuser.find().limit(2);

/* asc*/
db.wuser.find().sort({money: 1});

/* desc*/
db.wuser.find().sort({money: -1});


/*总数统计*/
db.wuser.find().count();

/* 组合起来使用 类似于 between rownum order 等功能*/

文章并未结束,待我深入了解mongoDB,将发表第二篇博客。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值