MongoDB应用.docx
- 文档编号:27053657
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:12
- 大小:204.76KB
MongoDB应用.docx
《MongoDB应用.docx》由会员分享,可在线阅读,更多相关《MongoDB应用.docx(12页珍藏版)》请在冰豆网上搜索。
MongoDB应用
目录
MongoDB数据库2
一、MongoDB简介2
二、Windows下MongoDB操作2
2-1、下载与解压2
2-2、运行服务端2
2-3、运行客户端3
2-4、测试操作3
2-5、备份与恢复6
2-6、数据导出、导入7
2-7、安全与认证8
2-8、其他9
三、Linux下安装MongoDB操作10
3-1、下载与解压10
3-2、运行服务端10
3-3、运行客户端10
3-4、测试操作10
MongoDB数据库
一、MongoDB简介
MongoDB是一个面向文档的数据库系统。
使用C++编写,不支持SQL,但有自己功能强大的查询语法。
MongoDB使用BSON作为数据存储和传输的格式。
BSON是一种类似JSON的二进制序列化文档,支持嵌套对象和数组。
MongoDB很像MySQL,document对应MySQL的row,collection对应MySQL的table。
二、Windows下MongoDB操作
MongoDB在Windows上的安装运行很方便。
直接下载、解压,然后运行bin/mongod即可启动服务器,运行bin/mongo即可运行命令行客户端。
2-1、下载与解压
官方网站:
http:
//www.mongodb.org/downloads。
下载对于版本,解压并抽取相关的bin目录到C:
\MongoDB下(这个任意选择)。
在启动MongoDB之前,我们必须新建一个存放mongoDB数据和日志的目录。
数据库目录:
C:
\MongoDB\data\db\,日志目录:
C:
\MongoDB\data\。
2-2、运行服务端
打开CMD窗口,进入到C:
\MongoDB\bin目录下,运行服务端mongod.exe。
C:
\>cdC:
\MongoDB\bin
C:
\MongoDB\bin>mongod.exe--dbpath=C:
\MongoDB\data\db--directoryperdb--logpath=C:
\MongoDB\data\logs--logappend
注:
日志文件为C:
\MongoDB\data\logs,以及添加方式记录(追加)。
数据目录为C:
\MongoDB\data\db,并且每个数据库将储存在一个单独的目录(--directoryperdb)。
服务端要一直运行。
Ctrl+C可中断。
2-3、运行客户端
再打开一个CMD窗口,进入到C:
\MongoDB\bin目录下,运行客户端mongo.exe来登录MongoDB。
(要保持服务端mongod.exe的窗口不关闭)
2-4、测试操作
MongoDB使用GridFS来储存大文件。
每个BSON对象大小不能超过4MB。
字段名限制:
不能以“$”开头;不能包含“.”;“_id”是系统保留的字段,但用户可以自己储存唯一性的数据在字段中。
MongoDB为每个数据库分配一系列文件。
每个数据文件都会被预分配一个大小,第一个文件名字为“.0”,大小为64MB,第二个文件“.1”为128MB,依此类推,文件大小上限为2GB。
MongoDB没有新建数据库或者collection的命令,只要进行insert或其它操作,MongoDB就会自动帮你建立数据库和collection。
当查询一个不存在的collection时也不会出错,Mongo会认为那是一个空的collection。
一个对象被插入到数据库中时,如果它没有ID,会自动生成一个“_id”字段,为24位16进制数。
MongoDB命令行客户端的脚本语法有些类似MySQL的:
>showdbs//列出所有数据库
>usememo//使用数据库memo。
即使这个数据库不存在也可以执行,但该数据库不会立刻被新建,要等到执行了insert等的操作时,才会建立这个数据库。
>showcollections//列出当前数据库的collections
>db//显示当前数据库
>showusers//列出用户
更多语法,查看help
新建数据库与数据集合:
插入数据:
(插入数据的方式有很丰富)
查询数据:
MongoDB的查询语法很强大,类似于SQL的条件查询。
例如,很多SQL可以做的,它都可以做:
db.foo.find()//select*fromfoo
db.foo.find().limit(10)//select*fromfoolimit10
db.foo.find().sort({x:
1})//select*fromfooorderbyxasc
db.foo.find().sort({x:
1}).skip(5).limit(10)//select*fromfooorderbyxasclimit5,10
db.foo.find({x:
10})//select*fromfoowherex=10
db.foo.find({x:
{$lt:
10}})//select*fromfoowherex<=10
db.foo.find({},{y:
true})//selectyfromfoo
一些SQL不能做的,MongoDB也可以做:
db.foo.find({"address.city":
"gz"})//搜索嵌套文档address中city值为gz的记录
db.foo.find({likes:
"math"})//搜索数组
db.foo.ensureIndex({"address.city":
1})//在嵌套文档的字段上建索引
更新数据:
db.foo.update({},{})更新对象,第一个参数是查询对象,第二个是替代的,可以在第二个对象里指定更新哪些字段,要使用$set。
删除条件查询:
删除数据集合(表):
删除当前数据库:
db.foo.remove()是用来删除数据,只删除匹配的对象
索引:
db.foo.ensureIndex({productid:
1})//在productid上建立普通索引
db.foo.ensureIndex({district:
1,plate:
1})//多字段索引
db.foo.ensureIndex({productid:
1},{unique:
true})//唯一索引
总的来说,使用mongodb可以满足常见的增删改差,但是不能完成复杂的跨表级联查询,mongodb努力使数据变得简单紧凑。
2-5、备份与恢复
二进制数据格式,常用于备份、还原。
Mongodb的备份工具mongodump:
事例:
下图把备份数据库test中所有的数据集合(表)
MongoDB的数据恢复工具mongorestore:
事例:
恢复数据库test中的表t002的数据
2-6、数据导出、导入
json或csv格式,每次一个collection
数据导出:
数据导入:
2-7、安全与认证
usetest2//选择数据库test2
db.addUser("username","password");//普通权限,可读写
db.addUser("username","password",true);//只可读,不可写
db.system.users.remove({user:
“username”});//删除用户
2-8、其他
还有一些脚本演示,如下:
1.> usetest;
2.>j = { name :
"mongo" };
3.{"name" :
"mongo"}
4.> t = { x :
3 };
5.{ "x" :
3 }
6.> db.test.save(j);
7.> db.test.save(t);
8.> db.test.find();
9.{ "_id" :
ObjectId("4c2209f9f3924d31102bd84a"), "name" :
"mongo" }
10.{ "_id" :
ObjectId("4c2209fef3924d31102bd84b"), "x" :
3 }
11.>
12.> for (var i = 1; i <= 20; i++) db.test.save({x :
4, j :
i});
13.> db.test.find();
14.> var cursor = db.test.find();
15.> while (cursor.hasNext()) printjson(cursor.next());
16.> db.test.find().forEach(printjson);
17.> var cursor = db.test.find();
18.> printjson(cursor[4]);
19.> var arr = db.test.find().toArray();
20.> arr[5];
21.> db.test.find({name:
"mongo"}).forEach(printjson);
22.> db.test.find({x:
4}, {j:
true}).forEach(printjson);
23.> printjson(db.test.findOne({name:
"mongo"}));
24.> db.test.find().limit(3);
三、Linux下安装MongoDB操作
整理中。
。
。
。
。
。
3-1、下载与解压
官方网站:
http:
//www.mongodb.org/downloads
3-2、运行服务端
3-3、运行客户端
3-4、测试操作
MongoDB命令行客户端的脚本语法有些类似MySQL的:
>showdbs//列出所有数据库
>usememo//使用数据库memo。
即使这个数据库不存在也可以执行,但该数据库不会立刻被新建,要等到执行了insert等的操作时,才会建立这个数据库。
>showcollections//列出当前数据库的collections
>db//显示当前数据库
>showusers//列出用户
更多语法,查看help
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MongoDB 应用
