Mongo数据库
关系型数据库
MySQL:不支持分布式,查询麻烦,支持 tablejoin。database 数据库【table 表【row】记录行【column】字段 【index】索引】
非关系型数据库
MongoDB 数据库命令:
在 MongoDB 的 bin 目录下
mongod .exe --dbpath MongoDB 的 data 文件目录
配置环境变量 path 将 MongoDB 下的 bin 目录写好
测试:cmd 下 --》mongo 出现版本号说明配置成功。
如何快速启动 MongoDB 服务:
在硬盘上新建一个文件夹 mongo,在文件夹中新建一个批处理文件。打开此文件,写下:mongod .exe --dbpath MongoDB 的 data 文件目录保存 即可 使用时双击。
连接 mongoDB:
mongo
查看帮助信息 :mongod -help
mongod -help
创建 MongoDB 客户端:启动顺序在服务器启动之后。
参考 MongoDB 的服务器端步骤,区别文件名不同和内容为:mongo.exe 127.0.0.1:27017/admin
在客户端查看 help 命令:help 即可。
增删改及基础命令:
use 【databaseName】
使用、创建数据库
show dbs 查看数据库
## 创建数据库之后要存数据才能查看到。
给指定数据库添加集合和记录
1.db. 集合名.insert{json}
2. 创建 bson 对象后,db. 集合名.insert(对象名)
查看当前集合:show collections
查看当前集合中的数据:db. 集合名.find();
插入数据:db. 集合名.insert({_id:1,"name":"dog"})
查询集合名第一条数据:db. 集合名.findOne();
save 插入:
_id 存在的情况,则修改,而 insert 则报错。
更新文档:
db. 集合名.update({更新条件},{更新内容})
更新条件也叫查询器;更新内容也叫更新器。
例子:db.persons.update({db.persons.findOne()},{"name":"zhangsan"})
更新操作 $set{}:
更新器前加上 $set{} ,修改为更新内容
更新内容的 key 存在则为修改 ;不存在则增加 key:value
若不带 $set{}, 更新内容 key 不存在则覆盖。
删除文档中的数据:
db. 集合名.remove({"name":"zhangsan"})// 删除张三的记录
MongoDB 不支持批量插入,用 for 循环可以,底层基于 js。
for(var i=1;i<=10;i++){
db.persons.insert({"name":i});
} 回车就插入成功。
删除数据:
所有:db. 集合名.remove();
单个:db. 集合名.remove({查询器});
查询:
db. 集合名.find({查询条件},{field:[0、1]})##0 为不显示;1 为显示
例如:db.persons.find({age:{$gte:30,$lte45}},{_id:0,name:1}) // 查询年龄在 30 到 45 之间的人的姓名。
db.persons.find({country:{$in:["USA","china"]}},{name:1,age:1,country:1,job:0})// 查询国籍是美国和中国的姓名、年龄、和国籍。
带条件的 where 查询:
db.persons.find({"age":23})// 查询年龄为 23 的人的信息
多表查询:
var classes ={id:1,name:"java",students:[{sid:1,name:"zhangsan",age:18},{sid:2,name:"lisi",age:20}]}
db.classes.insert(classes)
查询班级编码为 1 的第一位学生
1.db.classes.find({"_id":1}).forEach(function (e){printjson(e.students[0].sid)})
2.db.classes.findOne().students