对于class文件看不见,可以通过jd_gui反编译工具 查看
mongdb的优缺点:
- 1、文档结构的存储方式,能够更便捷的获取数据
- 2、内置GridFS,支持大容量的存储
- 3、性能优越,在千万级文档对象下,查询速度高于mysql
- 1、不知道事务操作
- 2、占用空间过大
- 3、没有如Mysql那样成熟的工具
与redis相比:
- mongodb的源语言是C++,redis也是C或C++
- mongodb文件存储是BSON格式,类似于JSON,或自定义二进制数据
- mongodb与redis的性能都很依赖内存大小,mongodb 有丰富的数据表达、索引;最类似于关系数据库,支持丰富的查询语言,redis数据丰富,较少的IO ,这方面mongodb优势明显。
- mongodb不支持事物,靠客户端自身保证,redis支持事物,比较弱,仅能保证事物中的操作按顺序执行,这方面 redis优于mongodb。
- mongodb对海量数据的访问效率提升,redis 较小数据量的性能及运算,这方面
- mongodb性能优于redis .monbgodb 有mapredurce功能,提供数据分析,redis 没有 ,这方面mongodb优于redis
MongoDB的安装教程:
http://blog.youkuaiyun.com/qq_15006743/article/details/78840244MongoDB的基本概念:
SQL术语 | MongoDB术语/概念 | 解释/说明 |
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |

增删改查的语法
创建数据库:
use DAATABASE_NAME
如果数据库不存在,则创建数据库,否则切换到指定数据库
删除数据库:
db.dropDatabase()
删除当前数据库,默认是test,你可以使用db命令查看当前的数据库名
集合删除语法格式
db.collection.drop()
查询:
db.collectionName.find(query,projection)
query:可选,表示查询的where条件
projection:可选,表示select字段,取得是哪些字段
db.collectionName.find(query,proejction).pretty()表示以易读的方式来读取数据
query条件的书写方式有:
or条件的书写方式如下:
db.col.find({
$or: [
{key1: value1}, {key2:value2}
]
}).pretty()
and和or方式连用如下:
db.col.find({
"likes": {$gt:50},
$or: [{"by": "菜鸟教程"},
{"title": "MongoDB 教程"}
projection条件的使用:
db.collection.find(query, {title: 1, by: 1})表示只返回title这个字段和_id
db.collection.find(query, {title: 0, by: 0})表示出了tilte这个字段都返回
只能全为0或者全为1;只有_id除外
分页查询:
db.COLLECTION_NAME.find()[.skip(Number)].limit(NUMBER)
排序:
db.COLLECTION_NAME.find().sort({KEY:1})
1表示asc;-1表示desc
插入:
db.collectionName_insert(document)
例如:
db.col.insert({
title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
更新:
db.collectionName.update(query,update,{
upsert:<boolean>,
multi:<boolean>,
writeConcern:<document>
})
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
删除:
remove() 方法的基本语法格式如下所示:
db.collection.remove(
<query>,
<justOne>
)
如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档。
writeConcern :(可选)抛出异常的级别。