MongoDB 的安装
-
在Linux上安装
在Linux上安装MongoDB Community Edition和所需的依赖项。 -
在macOS上安装
从Homebrew软件包或MongoDB存档在macOS系统上安装MongoDB Community Edition。 -
在Windows上安装
在Windows系统上安装MongoDB Community Edition,并可选择将MongoDB作为Windows服务启动。
安装之后
在 ... :\mongodb 中手动创建两个空文件夹
... :\mongodb\data\db
... :\mongodb\log
并在 ... :\mongodb\log 下面创建一个空的 mongo.log
MongoDB 的连接
运行服务器:
cd c:\mongodb\bin
mongod
连接 MongoDB
cd c:\mongodb\bin
mongo
可视化工具的使用
MongoDB 数据库的创建与删除
- show dbs 显示已有数据库
- use [集合名] 切换到指定)
- db 查看当前数据库
- db.dropDatabase() 删除当前数据库
- db.[集合名].find 查询当前数据库所有数据
注:
使用数据库但未向数据库插入数据的话,数据库不会被保留(重启 MongoDB 或切换目标数据库该数据库会被清除)
MongoDB 数据的增加与删除
-
db.[集合名].insert(数据信息) 插入单条数据
例:
db.test.insert([{ item: "journal", qty: 25, status: "A", size: { h: 14, w: 21,
uom: "cm" }, tags: [ "blank", "red" ] }])
-
db.[集合名].insertMany(数据信息) 插入多条数据
例:
db.test.insertMany([
{ item: "notebook", qty: 50, status: "A", size: { h: 8.5, w: 11, uom: "in" }, tags: [ "red", "blank" ] },
{ item: "paper", qty: 100, status: "D", size: { h: 8.5, w: 11, uom: "in" }, tags: [ "red", "blank", "plain" ] },
{ item: "planner", qty: 75, status: "D", size: { h: 22.85, w: 30, uom: "cm" }, tags: [ "blank", "red" ] },
{ item: "postcard", qty: 45, status: "A", size: { h: 10, w: 15.25, uom: "cm" }, tags: [ "blue" ] }
]);
- db.[集合名].insert(文档名) 插入整个文档
document=({item: "journal",
qty: 25, status: "A",
size: { h: 14, w: 21, uom: "cm" },
tags: [ "blank", "red" ]
});
db.test.insert(document)
-
db.[集合名].remove(条件) 删除数据信息
例:
db.test.remove({'item' : 'notebook'})
注:
db.[集合名].remove({})
删除所有数据信息
MongoDB 数据的修改
- db.collection.update( criteria, objNew, upsert, multi ) 更新数据
criteria:update 的查询条件,类似 sql update 查询内 where 后面的。
objNew:update 的对象和一些更新的操作符(如inc...)等,也可以理解为 sql update 查询内 set 后面的
upsert:这个参数的意思是,如果不存在 update 的记录,是否插入 objNew, true 为插入,默认是
false,不插入。
multi:mongodb 默认是 false ,只更新找到的第一条记录,如果这个参数为 true ,就把按条件查出来多条记录全部更新。
例:
更新符合条件的第一条记录(默认)
db.test.update({"item" : "journal"},{item: "notebook",qty: 25, status: "A",size: { h: 14, w: 21, uom: "cm" },tags: [ "blank", "red" ]});
只添加第一条
db.test.update(条件, 新记录, true, false);
全部添加加进去
db.test.update(条件, 新记录, true, true);
全部更新
db.test.update(条件, 新记录, false, true);
只更新第一条记录
db.test.update(条件, 新记录, false, false);
MongoDB 数据的查找
- db.[集合名].find() 查询当前数据库所有数据
- db.[集合名].find().pretty() 规范化查询结果
- db.[集合名].find(条件1, 条件2).pretty() 有条件的查询(默认用 AND 连接条件)
- db.[集合名].find(条件1, $or:[条件2, 条件3]).pretty() 有条件的查询(AND 与 OR 的联合使用)
MongoDB 操作符的使用
条件操作符
- (>) 大于 - $gt
- (<) 小于 - $lt
- (>=) 大于等于 - $gte
- (<= ) 小于等于 - $lte
例:
// MongoDB 语法
db.test.find({"pty" : {$gt : 100}})
// 相当于 SQL 语法
Select * from test where pty > 100;
type 条件操作符
类型 | 数字 | 备注 |
---|---|---|
Double | 1 | |
String | 2 | |
Object | 3 | |
Array | 4 | |
Binary data | 5 | |
Undefined | 6 | 已废弃 |
Object id | 7 | |
Boolean | 8 | |
Date | 9 | |
Null | 10 | |
Regular Expression | 11 | |
JavaScript | 13 | |
Symbol | 14 | |
JavaScript(with scope) | 15 | |
32 - bit integer | 16 | |
Timestamp | 17 | |
64 - bit integer | 18 | |
Min key | 255 | Query with - 1 |
Max key | 127 |
Limit 与 Skip 方法
Limit()方法
- db.集合名.find().limit(读取的记录条数Number) 读取指定数目的记录
db.test.find().limit(2)
Skip()方法
- db.集合名.find().skip(跳过的记录条数Number) 跳过指定数目的记录
db.test.find().limit(1).skip(1)
注:
- limit() 方法中的参数默认显示集合中的所有数据。
- skip() 方法默认参数为 0。
MongoDB 排序
- db.集合名.find().sort({KEY: NUMBER}) 对数据进行排序
sort()参数说明:
- KEY:指定排序的字段
- NUMBER:使用 1 和 -1 指定排序的方式,其中 1 为升序排列,-1 位降序排列。
例:
db.test.find().sort({"qty": 1})
注:
- sort() 方法中的参数默认为 1,按照文档的升序排列。
参考文档一: MongoDB 文档
参考文档二: MongoDB W3C文档