mongoDB整理

  • 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()
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 简介 MongoDB 是一个基于分布式文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WE...
    大熊_7d48阅读 35,885评论 1 9
  • 一、MongoDB简介 1.概述 ​ MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WE...
    郑元吉阅读 974评论 0 2
  • MongoDB使用总结 数据库操作 show dbs : 显示所有的数据库 use user : 选择数据库u...
    爱撒谎的男孩阅读 1,125评论 0 3
  • 简介 NoSQL : 全名为Not Only SQL, 指的是非关系型的数据库 随着访问量上升, 网站的数据库性能...
    奋斗的老王阅读 3,025评论 4 47
  • 1. 介绍、安装、使用(简单写写,不做详细介绍) 1.1 介绍 Mongodb是属于NoSql的一种数据类型; M...
    Grace_ji阅读 1,532评论 0 0