Mongo数据库

关系型数据库

MySQL:不支持分布式,查询麻烦,支持tablejoin。database数据库【table表【row】记录行【column】字段 【index】索引】

非关系型数据库

mongDB:支持分布式,开源,操作大量数据,不支持tablejoin,自动创建_id(object对象)为主键。datebase数据库【collection】集合【document】文档【field】域【index】索引】,BSON数据结构

 

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

posted on 2020-03-28 13:39  wendytwo  阅读(108)  评论(0)    收藏  举报