mongoDB

作者: 姓高名旭升 | 来源:发表于2019-08-14 20:31 被阅读0次
  • mongodb中基本的概念是 文档(字段)、集合(表)、数据库

1.查看当前数据库

db (默认为test)

2.查看所有数据库

show dbs或者show databases

3.切换数据库

use (如果数据库不存在,则创建,否则切换到指定数据库)

4.删除当前数据库(注意:先切换到要删除的数据库)

db.dropDatabase()  

5.创建集合

db.createCollection(name,options) 

6.查看集合

show collections

7.删除集合

db.集合名称.drop()

8.保存

db.集合名称.save(document)

9.更新

db.test2.update({name:'100cxy'},{name:'cxy100'})

10.数据查询

db.wzry.find({age:5})
db.wzry.findOne({age:5}) 查询,只返回第⼀个
db.wzry.find({age:5}).pretty() 将结果格式化

一、比较、范围运算符

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

  • 小于
    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:'刺客'}]})


三、支持正则表达式

  • 以'后'字开头
    -- 第一种
    db.wzry.find({name:/^后/})
    -- 第二种
    db.wzry.find({name:{$regex:'^后'}})


四、limit和skip

  • limit()用于读取指定数量的文档
    db.wzry.find().limit(2)

  • limit()用于读取指定数量的文档
    db.wzry.find().limit(2)


五、排序

  • ⽅法sort(), ⽤于对结果集进⾏排序
  • db.集合名称.find().sort({字段:1,...})
  • 参数1为升序排列
  • 参数-1为降序排列
 db.wzry.find().sort({age:1})


六、统计个数

  • 方法:count() ⽤于统计结果集中⽂档条数
    • db.集合名称.find({条件}).count()
    • db.集合名称.count({条件})
db.wzry.find({age:{$gte:5}}).count()
db.wzry.count({age:{$gte:5}})


七、消除重复

  • 方法:distinct() 对数据进行去重
  • db.集合名称.distinct('去重字段',{条件})
db.wzry.distinct('type')


八、mongdb聚合

常用表达式:

sum 计算总和,sum:1 表示以⼀倍计数
avg 计算平均值min 获取最⼩值
max 获取最⼤值push在结果⽂档中插⼊值到⼀个数组中
first根据资源⽂档的排序获取第⼀个⽂档数据last根据资源⽂档的排序获取最后⼀个⽂档数据

常用操作:

group将集合中的⽂档分组, 可⽤于统计结果match过滤数据, 只输出符合条件的⽂档
project修改输⼊⽂档的结构, 如重命名、 增加、 删除字段、 创建计算结果sort将输⼊⽂档排序后输出

limit限制聚合管道返回的⽂档数skip跳过指定数量的⽂档, 并返回余下的⽂档
$unwind 将数组类型的字段进⾏拆分


九、mongo和python交互

1、导入模块

import pymongo

2、建立与MongoClient的连接

client = MongoClient('localhost',27017)

3、得到数据库

db = client.数据库名

4、得到一个集合

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

      本文链接:https://www.haomeiwen.com/subject/cmanjctx.html