mongodb 数据库

什么是mongodb ?

'''mongodb 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。

mongodb 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

mongodb 将数据存储为一个文档,数据结构由键值(key=>value)对组成。mongodb 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

mongodb数据库特点

  • 模式自由 :可以把不同结构的文档存储在同一个数据库里
  • 面向集合的存储:适合存储 JSON风格文件的形式
  • 完整的索引支持:对任何属性可索引
  • 复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移
  • 自动分片:支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器
  • 丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组
  • 快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划
  • 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)

mongodb数据库基本命令:

  • 查看当前数据库名称:db
  • 列出所有在物理上存在的数据库:show dbs
  • 切换数据库:use 数据库名称
  • 查看当前数据库信息:db.stats()
  • 数据库删除:删除当前指向的数据库,如果数据库不存在,则什么也不做
    db.dropDatabase()

比较、范围运算符

  • 等于

默认是等于判断,没有运算符


  • 小于

db.wzry.find({ age : { $lt : 5} } )


  • 小于等于

db.wzry.find({ age : { $lte : 5} } )


  • 大于

db.wzry.find( { age : { $gt : 2 } })


  • 大于等于

$gte (greater than equal)


  • 不等于

$ne (not equal)


  • 在范围内

db.wzry.find( {age : { $in : [4,6] } } )


  • 不在范围内

db.wzry.find( { age : { $nin : [4,6] } } )

逻辑运算符

逻辑与 (and)
db.wzry.find({age:5,type:'呵呵'})
逻辑或 (or)
db.wzry.find({$or:[{age:5},{type:'呵呵'}]})

mongodb 与 Python交互:

安装python包

sudo pip3 install pymongo
导入模块

import pymongo

建立与MongoClient的连接

client = MongoClient('localhost',27017)

得到数据库

db = client.数据库名

得到一个集合

collection = db.集合名称

from pymongo import *
"""
插入方法:
insert_one() 传入一个字典,表示插入一个文档
insert_many() 传入一个列表,列表的元素为字典,插入多条文档
"""
def insert():
try:
# 1. 创建连接对象
client = MongoClient(host='localhost', port=27017)
# 2. 获取数据库
# 如果这个数据库不存在,就会在内存中虚拟创建
# 当在库里面创建集合的时候,就会在物理真实创建这个数据库
db = client.demo # 使用demo数据库
# 向stu集合插入数据
# 插入一条
db.stu.insert_one({'name': 'zs', 'age': 'lisi'})
# 插入多条
db.stu.insert_many([{'name': 1}, {'name': 2}])
except Exception as e:
print(e)


if __name__ == '__main__':
insert()

你可能感兴趣的:(mongodb 数据库)