数据库(database)

-数据库的服务器

-服务器用来保存数据

-mongod用来启动服务器

-数据库的客户端

-客户端用来操作服务器,对数据进行增删改查的操作

-mongo用来启动客户端

(不能关闭启动的服务器,否则新开的客户端无法连接)

扩展:将mongodb设置为系统服务,可以自动在后台启动,不需要每次收到启动(http://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/)

①-在C盘根目录data文件夹中创建log文件夹

②-创建配置文件

在目录 (你安装MongoDB的路径)下添加一个配置文件

mongod.cfg

(内容:

systemLog:

destination:filepath: c:\data\log\mongod.logstorage:

dbPath: c:\data\db

)

③-以管理员的身份打开命令行窗口

④-执行如下命令

sc.exe create MongoDB binPath= "\"C:\MongoDB\bin\mongod.exe\" --service --config=\"C:\MongoDB\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

备注:sc.exe create MongoDB binPath= "\"mongod的bin目录\mongod.exe\" --service --config=\"mongo的安装目录\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

⑤-启动mongodb服务

⑥-如果启动失败,证明上边的操作有误,

在控制台输入 sc delete MongoDB 删除之前配置的服务

然后从第一步再来一次

-- 基本概念

数据库(database)

集合 (collection)

文档(document)

-在MongoDB中,数据库和集合都不需要手动创建

当我们创建文档时,如果文档所在的集合或者数据库不存在会自动创建数据库和集合

-- 基本指令

show dbs

show databases

- 显示当前的所有数据库

use 数据库名

- 进入到指定的数据库中

db

- db表示的是当前所处的位置

show collections

- 显示数据库中所有的集合

-- 数据库的CRUD(增删改查)的操作

- 向数据库中插入文档

db..insert(doc)

- 向集合中插入一个文档

- 例子: 向test数据库中的,stus集合中插入一个新的学生对象

{name:"孙悟空",age:12,gender:"男"}

db.stus.insert({name:"孙悟空",age:12,gender:"男"})

db..find()

- 查询当前集合中所有的文档

①-插入数据

向数据库中插入文档

db..insert()

- 向集合中插入一个或多个文档

- 当我们向集合中插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档添加_id,该属性用来作为文档的唯一标

- _id我们可以自己指定,如果我们指定了数据库就不会再添加了,如果自己指定_id 也必须确保它的唯一性

db..insertOne()

- 插入一个文档对象

db..insertMany()- 插入多个文档对象

②-查询

查询

db.collention.find()- find()用来查询集合中所有符合条件的文档

- find()可以接收一个对象作为条件参数 {}表示查询集合中所有的文档 {属性:值} 查询属性是指定值的文档

db.collection.findOne()- 用来查询集合中符合条件的第一个文档

- findOne()返回的是一个文档对象

db.collection.find({}).count()- 查询所有结果的数量

③-修改

修改

db.collection.update(查询条件,新对象)- update()默认情况下使用新对象替换旧对象

- 如果需要修改指定的属性,而不是替换需要使用"修改操作符"来完成修改

$set可以用来修改文档中的指定属性

$unset 可以用来删除文档中的指定属性- update()默认修改一个

db.collection.updateOne()- 修改一个符合条件的文档

db.collection.updateMany()- 同时修改多个符合条件的文档

db.collection.replaceOne()- 替换一个文档

④-删除

删除

db.collection.remove()-删除符合条件的所有文档(默认情况下会删除多个)

如果remove()第二个参数传递一个true,则只会删除一个

- 如果只传递一个空对象作为参数,则会删除集合中的所有文档

db.collection.deleteOne()

db.collection.deleteMany()-remove()可以根据条件来删除文档,传递的条件的方式和find()一样

db.collection.drop();-删除集合

db.dropDatabase()- 删除数据库

文档(document)

文档是MongoDB中数据的基本单元,类似关系数据库的行,多个键值对有序的放置在一起便是文档

MongoDB中以文档的方式存取记录,如一条记录格式如下:

{“username”:“sunsu”,“age”:12,email:'damowang@huohu.com','sex':女}

{“username”:“sunsu”,“age”:12}

{“Username”:“sunsu”,“age”:12}

{“Username”:“sunsu”}

注意:

(1)以上是几个不同的文档,MongoDB区分大小写的数据类型,第一个age字段是数字类型,第二个age是字符串类型

(2)每一个文档尺寸不能超过16M

(3)MongoDB的文档不能有重复的键

(4)文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符

文档之间的关系:

一对一(one to one)

-    夫妻 (一个丈夫 对应 一个妻子)

-   在MongoDB,可以通过内嵌文档的形式来体现出一对一的关系

一对多(one to many)/多对一(many to one)

-   父母 - 孩子

用户 - 订单

文章 - 评论

- 也可以通过内嵌文档来映射一对多的关系

多对多(many to many)

-  分类 - 商品

老师 - 学生

举例:

//一对一

db.wifeAndHusband.insert([{

name:"黄蓉",

husband:{ name:"郭靖" }

}, {

name:"潘金莲",

husband:{ name:"武大" }

}]);

db.wifeAndHusband.find();

//一对多 用户(users)和订单(orders)

db.users.insert([{

username:"孙悟空"},{

username:"猪八戒"}]);

db.order.insert({list:["苹果","香蕉","大鸭梨"],user_id:ObjectId("5d2bd20b782eae7ac9b5b5be")

});

db.users.find();

db.order.find();//查找用户孙悟空的订单var user_id =db.users.findOne({

username:"孙悟空"})._id;

db.order.find({user_id:user_id});

//多对多

db.teachers.insert([{

name:"洪七公"},{

name:"黄药师"},{

name:"龟仙人"}]);

db.stus.insert([{

name:"郭靖",

tech_ids:[

ObjectId("5d2bd518782eae7ac9b5b5c4"),

ObjectId("5d2bd518782eae7ac9b5b5c5")]},{

name:"孙悟空",

tech_ids:[ObjectId("5d2bd518782eae7ac9b5b5c4"),

ObjectId("5d2bd518782eae7ac9b5b5c5"),

ObjectId("5d2bd518782eae7ac9b5b5c6")]}]);

db.teachers.find();

db.stus.find();

集合(collection)

集合就是一组文档,多个文档组成一个集合,集合类似于mysql里面的表,

无模式是指,在同一个集合中可以包含不同格式的文档,如:

{“Name”:“Mongodb”,“Type”:“Nosql”}

{“UserName”:“Sunsu”,“age”:12,“Gender”:“male”}

以上两个文档可以放在同一个集合中

在mysql需要先建表再插入数据

模式自由:意思是集合里面没有行和列的概念

注意:MongoDB中的集合不用创建、没有结构,所有可以放不同格式的文档

mongodb mysql配置_Nosql_MongoDB数据库配置以及基本指令相关推荐

  1. mysql主备数据库配置_MySQL双主互备配置

    #主数据库配置 1.修改my.conf(windows下是my.ini)文件: 在[mysqld]部分插入如下两行: #开启二进制日志 log-bin=mysql-bin #设置server-id s ...

  2. kettle mysql 配置_Kettle数据库配置抽离

    在使用ETL工具Kettle时候,为了使作业或转换具有通用性,有时候,我们需要将数据库的连接配置从脚本或转换中抽离出来,下面介绍一种方案,该方案主要涉及的文件有: # 这两个文件,默认是在系统的用户目 ...

  3. mysql主备数据库配置文档_MySQL数据库配置主从服务器实现双机热备实例教程

    网站:bbs.osyunwei.com 程序在:Web服务器192.168.21.129上面 数据库在:MySQL服务器192.168.21.169上面 实现目的:增加一台MySQL备份服务器(192 ...

  4. laravel mysql 配置,laravel5数据库配置及其注意事项

    今天分享一个Laravel5数据库配置上的坑. Laravel5作为一套简洁.优雅的PHP Web开发框架(笑),唯一不足的一点就是中文手册或者说是资料比较少,虽然现在很多大神也开始普及这些东西,但是 ...

  5. centos6配置mysql远程访问_MariaDB 数据库配置 Navicat 程序远程访问权限

    如果MySQL数据库采用的是 MariaDB 引擎,与普通的数据库配置有点不同 MariaDB 与普通的MySQL数据库的一个不同在于它的配置文件不止一个,它将不同的数据放入到不同的配置文件中,之前的 ...

  6. mysql数据库参数配置_MySQL数据库配置参数优化及参数对应的解释

    Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的 ...

  7. 微信小程序商城,关于基于云服务器的接口文件配置还有数据库配置

    这个周闲暇时间做了一个微信小程序商城,具体的代码会打包放我的git仓库,主要实现的前端页面有:登录界面,商品界面,商品详情界面,购物车购买界面,个人信息界面,订单界面.然后在本地用mysql建立了一个 ...

  8. mongodb mysql 事务_MongoDB数据库两阶段提交实现事务的方法详解 _ 蚂蚁视界

    本文实例讲述了MongoDB数据库两阶段提交实现事务的办法.分享给年夜家供年夜家参考,详细如下: MongoDB数据库中操作单个文档老是原子性的,然而,涉及多个文档的操作,通常被作为一个"事 ...

  9. java数据库配置_Java数据库配置(一)

    1.加载驱动 Class.forname(数据库驱动名); 1.1.下载驱动 在加载数据库驱动之前,我们要下载数据库驱动.一版情况下若想使用哪个数据库的驱动,在哪个数据库的官方网站就能找到java版本 ...

最新文章

  1. 2月1日学习内容整理:算法
  2. Photoshop CC2018软件安装资料及教程
  3. 通过Excel访问Kylin
  4. linux 命令 cd -p,Linux_实例讲解Linux中cd命令切换目录的使用技巧,cd命令大家再熟悉不过了,bash sh - phpStudy...
  5. PC-CSS-多浏览器支持HTML5
  6. linux server.xml日志参数,Linux Log4j+Kafka+KafkaLog4jAppender 日志收集
  7. Tsung压力测试工具的搭建和使用,配置。
  8. 人工智能在5G网络中的应用
  9. 康佳电视软件测试工程师,康佳电视怎么样之康佳55吋曲面人工智能电视试用测评...
  10. 下载电驴屏蔽资源办法
  11. Unity3D游戏开发入门学习笔记
  12. latex行间距调整
  13. POJ刷题列表——正在进行
  14. 单片机C语言步进电机实训报告,步进电机控制实训报告.doc
  15. 推荐几本最好的web前端开发技术图书
  16. 华为上机题-二师弟的星际加法
  17. ffmpeg(ubuntu16.04):视频抽成帧(图片)/图片合成视频
  18. Cas(04)——更改认证方式
  19. 记录小米路由器硬盘版第2代R2D(最高性价比轻NAS,没有之一)开启SSH屡次失败原因
  20. 超级块,i节点,数据块,目录块,间接块

热门文章

  1. 今天专攻POWERSHELL获取本机CPU,内存消耗
  2. linux的系统移植——交叉编译工具集
  3. 排序算法以及基本数据结构
  4. 修改类名后依旧按照原先的类名进行加载
  5. java.lang.math.trunc,java – JPA/Hibernate返回BigDecimal不长
  6. linux修改永久ip地址,centos设置IP地址,永久修改ipv4
  7. oracle把时间段转换成每一天_在家办公难适应?来看看专职外汇交易员的一天
  8. C++ 多继承中的多义性
  9. 下载CIFAR-10、CIFAR-100数据集的方法
  10. python将数据集分成训练样本和类标签