码迷,mamicode.com
首页 > 数据库 > 详细

python之路_day99_mongodb数据库

时间:2018-01-15 22:27:07      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:round   span   注意   存在   替换   结构   com   多个   star   

一、安装与配置

1、下载安装

#1、安装路径为D:\MongoDB,将D:\MongoDB\bin目录加入环境变量

#2、新建目录与文件
D:\MongoDB\data\db
D:\MongoDB\log\mongod.log

#3、新建配置文件mongod.cfg,参考:https://docs.mongodb.com/manual/reference/configuration-options/
systemLog:
   destination: file
   path: "D:\MongoDB\log\mongod.log"
   logAppend: true
storage:
   journal:
      enabled: true
   dbPath: "D:\MongoDB\data\db"
net:
   bindIp: 0.0.0.0
   port: 27017
setParameter:
   enableLocalhostAuthBypass: false
    
#4、制作系统服务
mongod --config "D:\MongoDB\mongod.cfg" --bind_ip 0.0.0.0 --install
#或者
mongod --bind_ip 0.0.0.0 --port 27017 --logpath D:\MongoDB\log\mongod.log --logappend --dbpath D:\MongoDB\data\db  --serviceName "MongoDB" --serviceDisplayName "MongoDB"  --install

#5、启动\关闭
net start MongoDB
net stop MongoDB

#6、登录
mongo

#链接:http://www.runoob.com/mongodb/mongodb-window-install.html

 2、账号管理

#账号管理:https://docs.mongodb.com/master/tutorial/enable-authentication/
#1、创建账号
#创建超级用户
use admin
db.createUser(
  {
    user: "root",
    pwd: "123",
    roles: [ { role: "root", db: "admin" } ]
  }
)
#创建普通用户
use test
db.createUser(
  {
    user: "egon",
    pwd: "123",
    roles: [ { role: "readWrite", db: "test" },
             { role: "read", db: "db1" } ]
  }
)

#2、重启数据库
mongod --remove
mongod --config "C:\mongodb\mongod.cfg" --bind_ip 0.0.0.0 --install --auth
#或者(与制作系统服务对应)
mongod --bind_ip 0.0.0.0 --port 27017 --logpath D:\MongoDB\log\mongod.log --logappend --dbpath D:\MongoDB\data\db  --serviceName "MongoDB" --serviceDisplayName "MongoDB"  --install --auth


#3、登录:注意使用双引号而非单引号 mongo --port 27017 -u "root" -p "123" --authenticationDatabase "admin" #也可以在登录之后用db.auth("账号","密码")登录 mongo use admin db.auth("root","123") #推荐博客:https://www.cnblogs.com/zhoujinyi/p/4610050.html

二、基本操作

1、数据库操作

a、增:

use db1

  如上,db1为创建的数据库的名字,执行上述命令时,如果db1数据库已经存在,则是将切换到此数据库下;如果此数据库不存在,则是创建一个新的数据库,同时也会切换到此数据库下。

b、查:

show dbs                                                             #查看所有存在的数据
db                                                                   #查看当前正在使用的数据库

  注意一点,通过show dbs并不会看到刚才创建的db1数据库,主要是因为数据库中并没有数据,只有数据中有数据的时候才可以看见此数据库。

c、删:

use db1                                                              #第一步:切换到要删除的数据库下
db.dropDatabase()                                                    #第二步:删除当前状态下的数据库

  提示:数据库相关操作的方法,可以通过db.help()方法查看。

2、集合操作

  集合就是一组文档。如果将MongoDB中的一个文档比喻为关系型数据的一行,那么一个集合就是相当于一张表。集合存在于数据库中,通常情况下为了方便管理,不同格式和类型的数据应该插入到不同的集合,但其实集合没有固定的结构,这意味着我们完全可以把不同格式和类型的数据统统插入一个集合中。

a、增:

  当一个文档插入时,集合就被创建,具体如下实例:

技术分享图片

b、查:

show tables
#或者
show collections

c、删:

技术分享图片

  提示:通过db.集合名.help()可以查看集合操作的相关方法。

3、文档操作

(1)增

  添加一条数据:除了之前实例中我们将要添加的有序字典直接放在insert方法里面,我们还可以按照如下方式,先在全局定义要插入有序字典数据,然后直接将这个变量赋给insert方法,这样的好处是全局数据可以被多次使用。

技术分享图片

  添加多条数据:上述的insert方法一次性只能插入一个文档数据,当然也可以一次性插入多个文档,但是需要使用insertMany方法,接收的文档必须是一个列表的形式,具体实例如下:

技术分享图片

(2)查

  如下实例介绍了模糊查询的查询方式,查找集合中所有的文档或者第一条文档,其中使用db.users.find().pretty()可以让查询的结果以更清晰的结构显示,这里就不做具体的实例结果展示。

技术分享图片

(3)改

  文档的修改主要用到的是update方法,其主要参数及用法介绍如下:

update() 方法用于更新已存在的文档。语法格式如下:
db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
参数说明:对比update db1.t1 set name=EGON,sex=Male where name=egon and age=18;

query : 相当于where条件。
update : update的对象和一些更新的操作符(如$,$inc...等,相当于set后面的
upsert : 可选,默认为false,代表如果不存在update的记录不更新也不插入,设置为true代表插入。
multi : 可选,默认为false,代表只更新找到的第一条记录,设为true,代表更新找到的全部记录。
writeConcern :可选,抛出异常的级别。

更新操作是不可分割的:若两个更新同时发送,先到达服务器的先执行,然后执行另外一个,不会破坏文档。

1、部分内容修改

  (1)upsert参数

技术分享图片

  当设置upsert未true时,结果会发生变化,若没有符合要求的文档对象时,要修改的内容将以一条新的文档插入集合中,如下:

技术分享图片

  multi参数:

技术分享图片

  但是当设置{"multi":true}时,情况也会发生变化,将所有符合条件的文档更改为要更改的内容,但是对于多个对象修改,必须使用修改器,如下例:

技术分享图片

2、全新文档替换

方式1:

技术分享图片

方式2:

技术分享图片

 

python之路_day99_mongodb数据库

标签:round   span   注意   存在   替换   结构   com   多个   star   

原文地址:https://www.cnblogs.com/seven-007/p/8289051.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!