day066 mongoDB简单使用

原创 2018年04月15日 19:54:17

mongoDB

mongoDB,nosql数据库,存储key-value格式的值,常用于对网页数据的存储,是爬虫数据存储的不二之选。

预备概念:

  • 关系型数据库(RDBMS):有明确规定的字段,结构化数据的存储方式,是存储数据的最主要的数据库类型,常见的又orical,mysql
  • 非关系型数据库(NoSQL):以key-vlalue,文档等!形式存储数据的存储方式,没有关系型数据库的结构性约束,存取容易,可存储数据类型丰富,像关系复杂,体量大,需要随用随取的数据,一般存储在非关系型数据库里。常见的非关系数据库有:redis,mongoDBD等

mongoDB的基本使用

1.mongoDB的启动
        1.开启服务 sudo mongod
        2.开启客户端  mongo 
        db.createUser({user:"bbb",pwd:"123456",roles:[{role:"read",db:"test"}]})
2.数据库的操作:
        1. 查看所有的数据库         show dbs
        2. 切换数据库               use  xxx
        3. 查看数据库的集合(表)     show  collections
        4. 数据库的创建 有值自动创建
        5. 删除数据库              1.进入当前数据库 2. db.dropDatabase()

3.集合(表)操作:
        1. 查看集合     show collections
        2. 创建集合     db.createCollection("xxx")
        3. 删除集合     db.xx.drop()

4.文档(行)的增删改:
        4.1.增加数据 db.xx.insert({key:value})
            db.stu.insert({_id:1,name:"隔壁老万",age:88,gender:false})

            data_dict = {
                name:"小明",
                age:12,
                gender:false
            }
            db.stu.insert(data_dict)

            db.stu.insert({_id:1,name:"王宝强",age:35,gender:false})
            db.stu.insert({_id:2,name:"陈羽凡",age:28,gender:false})
            db.stu.insert({_id:3,name:"贾乃亮",age:20,gender:false})

            db.stu.insert({_id:4,name:"马蓉",age:16,gender:true})
            db.stu.insert({_id:5,name:"白百何",age:18,gender:true})
            db.stu.insert({_id:6,name:"李小璐",age:28,gender:true})
            db.stu.insert({_id:7,name:"PGone",age:88,gender:true,like:"洗头发"})

        4.2. 删除数据:db.xx.remove(删除的条件)
             1.全部删除
                db.stu.remove({})
             2.根据条件删除: 默认是删除 所有符合条件的数据
                db.stu.remove({age:28})
             3. 只删除符合条件的第一个
                db.stu.remove({gender:true},{justOne:true})

        4.3.改 update: db.xx.update({查找的条件},{修改的内容})
            1. 修改内容: 默认其他原有字段删除了,且只会修改满足条件的第一个document
                db.stu.update({age:20},{name:"皮几万"})
                db.stu.update({name:"白百何"},{like:"小鲜肉"})

            2. 保持原有的字段 加一个修饰 $set: 默认 只修改第一个
                db.stu.update({age:35},{$set:{like:"喝牛奶"}})
                db.stu.update({name:"李小璐"},{$set:{age:10}})
                db.stu.update({gender:false}, {$set:{age:66}})

            3. 修改所有符合条件的数据 multi
                db.stu.update({gender:true}, {$set:{name:"甜心"}},{multi:true}) 

        4.4.save: 针对是 _id
                db.stu.save({_id:7,name:"特朗普",age:"70",gender:false})
                db.stu.save({_id:1,name:"马蓉"})
                // db.stu.save({name:"皮几万"})
5.文档查询简单查询:
            5.1.基本查询 db.xx.find({查询条件})
                1.查询所有的数据 
                    db.stu.find()
                    db.stu.find({})
                2.默认查出 所有的符合条件的数据
                    db.stu.find({gender:true})

                3.查找符合条件的第一个
                    db.stu.findOne({gender:true})

                4. 格式化输出 pretty()
                    db.stu.find({age:28}).pretty()

            5.2.条件运算符 $lt $gt $lte $gte $ne 数字对比
                // 年龄 大于18岁的人
                db.stu.find({age:{$gt:18}})

                // 年龄 不等于18的
                db.stu.find( {age: {$ne:18}})

            5.3.逻辑运算 $and $or 
                1.$and 默认的查询条件就是 且的关系
                    db.stu.find({age:28,gender:false})

                    $and:
                    db.stu.find({
                        $and:[
                            {age:28},
                            {gender:true}
                        ]
                    })
                2. $or 
                    // 年龄小于30或者 性别 男
                    db.stu.find({
                        $or:[
                            {age:{$lt:30}},
                            {gender:false}
                        ]
                    })
                3.混合使用 $and $or
                    // 年龄小于30必须性别 男, 或者年龄大于60
                    db.stu.find({
                        $or:[
                            {
                                $and:[
                                    {age:{$lt:30}},
                                    {gender:false}
                                ]
                            },
                            {age:{$gt:60}}
                        ]
                    })
                4.范围运算: $in $nin
                    // 年龄范围在 16,18,88
                    db.stu.find({
                        age:{$in:[16,18,88]}
                    })
                    db.stu.find({
                        name:{$nin:["贾乃亮"]}
                    })
                5.正则表达式:
                    1. /表达式/ 2.$regex:"表达式"
                    db.stu.find({
                        name:/凡/
                    })
                    db.stu.find({
                        name:{$regex:"凡"}
                    })
                    忽略大小写 i
                    db.stu.find({
                        name:/pgone/i
                    })
                    db.stu.find({
                        name:{$regex:"pgone",$options:"i"}
                    })
                6.自定义函数 $where:带返回值的匿名函数
                    // 年龄大于18
                    db.stu.find({
                        $where:function () {
                            return this.age > 18
                        }
                    })

6.查询结果的显示:
          6.1.skip:跳过几个查看
               db.stu.find().skip(2)
          6.2.limit:允许查看几个
               db.stu.find().limit(2)

              db.stu.find().skip(2).limit(2)
              db.stu.find().limit(2).skip(2)
         6.3. sort: 升序 和降序 字段 1升序 -1降序
              // 年龄排序
              db.stu.find().sort({age:1})

         6.4.投影: 你显示哪些字段, 字段:1, 默认:0
              db.stu.find({gender:true},{age:1,name:1})

         6.5.去重: distinct(去重的字段,{查询条件})
              db.stu.distinct("hometown", {age:{$lt:100}})

python中使用mongoDB

步骤:

    1. 链接数据库
    1. 创建数据库
    1. 创建集合
    1. 写入文件
    1. 关闭文件

试例:将.json数据存储到mongoDB中

# -*- coding:utf-8 -*-
import pymongo
import json


# 将.json数据存储到mongoDB数据库中
class PyMongo(object):
    def __init__(self):
        self.host = '127.0.0.1'
        self.port = 27017

    def __open_file(self):
        self.file=open('./qiushibaike_data.json', 'r')
        # 链接数据库
        try:
            self.client = pymongo.MongoClient(host=self.host, port=self.port)
        except Exception, err:
            print err
        # 创建数据库
        self.db = self.client['qiushibaike']
        # 创建集合
        self.collection = self.db['duanzi']

    def main(self):
        # 1.链接mongo数据库
        self.__open_file()

        # 2.读取json文件的数据
        data_list = json.load(self.file)

        # 3.写入数据
        try:
            self.collection.insert(data_list)
        except Exception as err:
            print err

        # 4.关闭文件
        self.file.close()


if __name__ == '__main__':
    upload_to_mongoDB = PyMongo()
    upload_to_mongoDB.main()

在robo 3T(一个mongoDB图形界面操作软件)中显示的结果:

# pymongo.png

版权声明:本文为博主原创文章,未经博主允许请随意转载。 https://blog.csdn.net/Michael_Cool/article/details/79952378

Redis的简单使用初探

-
  • 1970年01月01日 08:00

MongoDB Helper的简单封装

db.properties #mongodb数据库配置文件 #数据库服务器所在的ip地址 ip=127.0.0.1  #mongodb服务端口号 port=27017 ...
  • qfxsxhfy
  • qfxsxhfy
  • 2015-08-15 21:22:04
  • 1457

mongodb简单使用

下载安装一定要,但是我不想说啦 哈哈,各位大佬请见谅 1、进入到mongdb的安装文件夹 cd /usr/local/Cellar/mongodb/3.6.3/bin //...
  • web_youth
  • web_youth
  • 2018-04-23 17:22:03
  • 9

mongodb的简单使用

root@mirage:/home/mirage/taolei/testxapian# mongo MongoDB shell version: 2.0.4 connecting to: test u...
  • u011013370
  • u011013370
  • 2013-11-03 16:30:49
  • 715

mongoDB简单使用

注:本文来自网上摘抄 1,安装后新建目录 md d:\mongodb\data\db md d:\mongodb\data\log 2,启动 d:\mongodb\bin>mongod -dbpat...
  • c_huabo
  • c_huabo
  • 2016-04-18 15:17:28
  • 325

MOngoDB的简单使用

一 mongodb的概念1.文档(document) 文档是MongoDB的核心概念,文档就是键值对的一个有序集合 mongodb不但区分类型,而且还区分大小写 mongodb的文档不能有重复的...
  • qq_33380716
  • qq_33380716
  • 2016-10-23 23:09:50
  • 122

MongoDB的简单使用

启动在命令行下进入MongoDB\bin目录(dbpath后面为数据库的位置)mongod --dbpath E:\MongoDB\data默认地址为: http://localhost:27017/...
  • wa7ch7
  • wa7ch7
  • 2018-01-03 10:31:24
  • 44

C#操作mongodb数据库的帮助类,mongodbhelper

  • 2017年09月12日 11:24
  • 3KB
  • 下载

NoSQL入门介绍

  • 2017年10月06日 14:46
  • 1.02MB
  • 下载

MongoDB入门学习

  • 2012年10月11日 17:55
  • 5KB
  • 下载
收藏助手
不良信息举报
您举报文章:day066 mongoDB简单使用
举报原因:
原因补充:

(最多只允许输入30个字)