NoSQL之Mongodb

mongodb简介

MongoDB是一个基于分布式文件存储的数据库,由c++语言编写.

在高负载的情况下,添加更多的节点,可以保证服务器性能,MongoDB指在为web应用提供可扩展的高性能数据存储解决方案.

MongoDB将数据存储为一个文档,数据结构有键值对组成.MongoDB文档类似于json对象

{
    "_id" : ObjectId("5d0f43c6bf3f9a9fb70def86"),
    "name" : "alexDSB"
}
存储样式
1.MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
2.你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
3.你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
4.如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
5.Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
6.MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
7.Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
8.Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
9.Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
10.GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
11.MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
12.MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
13.MongoDB安装简单。
特点

MongoDB概念解析

SQL术语/概念 MongoDB术语/概念 解释说明
database database 数据库
table table 数据库表/集合
row document 数据记录/文档
column field 数据字段/域
index index 索引
table joins   表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置

通过下图,我们可以更直观的了解Mongo中的一些概念

 启动MongoDB数据库

1.我们下载完成以后,需要环境配置

你下载的位置:  比如:C:mongo.dbin   注意:到bin下
在配置环境变量


--------------------------

 通过命令 mongod 来启动 MongoDB
        默认端口 27017
        redis:6379
        Mysql:3306
        mongod --dbpath="指定数据库存放路径"  比如:从新创建位置:D:datadb
环境配置

2应用连接MongoDB数据库

通过 mongo 指令 进入本地数据库连接

3.MongoDB数据

 mysql - 数据库服务 - 数据库 - 数据表 - 字段 - 数据row
    mongodb - 数据库服务 - 数据库 - 数据表 - 字段 - 数据
    
    show databases 查看当前数据库服务 中包含的数据库 磁盘中的数据库
    use db_name 切换当前使用的数据库 ,如果数据库不存在,会在内存中创建一个新的数据库
    db 显示当前使用的数据库 ,指数据库名 
    show tables 查看当前数据库中的数据表 - 预览 - 磁盘中的数据表
View Code

4.创建数据表

db.数据表名  在内存中创建数据库表

5.写入数据才能将内存中的数据库和数据表永久写入带磁盘中

orm.create({}) == orm.insert({})
    增加数据
        db.users.insert({"name":1,"age":2})
        数据库.数据表.指令({数据})
    
    查询数据
        db.users.find()
        数据库.数据表.指令()
        
        
View Code

6.连接数据库MongoDB软件版

就可以使用了

pycharm连接MongoDB

1.在pycharm下载pymongo

2.导入模块,使用

import pymongo

conn= pymongo.MongoClient('127.0.0.1',27017)     #MongoDB默认端口27017
MONGO_DB=conn['s17DB']   #使用了不存在的对象即创建该对象

#增加  MONGO_DB.users.insert()
MONGO_DB.users.insert_one({"name":'alexDSB'})  #增加一个
MONGO_DB.users.insert_many([{"name":"alexDSB"},{"name":"路飞"}])  #增加多个
#高级
# res = MONGO_DB.users.insert_one({"name":"MJJ","age":45,"hobby":["抽烟","喝酒","烫头"]})

#
res = MONGO_DB.users.find_one({"age":1},{"_id":0})
print(res,type(res))

ress = list(MONGO_DB.users.find({},{"_id":0}))
print(ress)
for item in ress:
    print(item)
print(ress)
# find({}) 是一个生成器
# res = list(MONGO_DB.users.find({"$or":[{"name":"配齐"},{"age":1}]},{"_id":0}))
# res = list(MONGO_DB.users.find({"name":{"$in":["alex","alexDSB","配齐"]}}))
# print(res)

#
# res = MONGO_DB.users.update_many({"name":"alexDSB"},{"$set":{"age":2}})
# print(res.modified_count)
# MONGO_DB.users.update_one({"hobby":"烫头","name":"MJJ"},{"$set":{"hobby.$":"绿玉屠龙"}})
# MONGO_DB.users.update_one({"name":1},{"$push":{"package":{"name":"剧毒开天","act":1099,"p":"能换好多元宝"}}})

#
 #MONGO_DB.users.delete_one({"name":3})
# MONGO_DB.users.delete_many({"name":"alexDSB"})
原文地址:https://www.cnblogs.com/tianshuai1/p/11073529.html