MongoDB笔记2018.2.6

1.先简单接触下linux,大部分教程是在linux环境下的操作,要不然看不懂教程

2.找教程或视频 教程推荐菜鸟教程

学习MongDB前需要懂一定的Mysql语法,后面会用到

MongoDB的数据库、集合、键值对有就用,没有就insert()时候自动新建【只要字典格式对,不管有没有键都能插入】

严格区分大小写

1.常用命令

  1. 查看列表 show dbs
  2. 转到(或自动创建) use testdatabase
  3. 查看当前数据库里的集合 show tables / show collections
  4. 删除当前数据库 db.dropDatabase()
  5. 查看当前集合列表 show tables
  6. 查看当前集合里面的内容 db.jihe1.find()
  7. 删除当前集合(和里面的数据) db.jihe1.drop()
  8. 删除集合里的数据 db.jihe1.remove(参数) 【必须带参数,{}表示全部】

2.插入数据【注:只有新建的意思,并没有修改或追加的功能】

向集合插入数据 db.col.insert(document)

我觉得有必要写一个例子,不想看就略过

//insert插入数据项和数据【只能新建,不能追加和更新】
----------方式1--------------------------------------------
> document=({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
});
//插入col这个集合中(没有就新建,有就更新)
> db.col.insert(document)
WriteResult({ "nInserted" : 1 })
>
----------方式2--------------------------------------------
> var document = db.collection.insertOne({"a": 3})
> document
{
"acknowledged" : true,
"insertedId" : ObjectId("571a218011a82a1d94c02333")
} # 插入多条数据
> var res = db.collection.insertMany([{"b": 3}, {'c': 4}])
> res
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("571a22a911a82a1d94c02337"),
ObjectId("571a22a911a82a1d94c02338")
] }

更新集合/文档 update() 和 save() 【追加,清空,删除等】【这里比较复杂,建议直接去菜鸟教程查看】

updata()

db.collection.update(
<query【查询语句,类似sql update查询内where后面的】>,
<update【update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的】>,
{
upsert: <boolean>,
//可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi: <boolean>,
//可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern: <document>
//可选,抛出异常的级别。
}
)

save()

    db.collection.save(
<document>,
{
writeConcern: <document>
}
)

3.更新集合 update()【改】

db.集合名.update({'id':2},{'$set':{'title':'YourBlog'}})
//db.集合名 条件 $set(执行方法:增加或修改指定的键值对),,,【这里修改了‘YourBlog’】
1. $set 增加或修改指定的键值对
2. $unset 删除指定额键值对
3. $inc 增减指定的键的值,符合条件的第一个【常用于修改id值】
4. $pop
5. $push
6. $pull
4. ...【还有几个操作方法】
---

很多$*..能加参数 默认是false 改为 true 是当没找到时新增

        例:
db.blogg.update({'id':3},{'size':10},true) 【true是第三个参数】
//更新id是3的 没找到的话就新建(这个参数好像是可有可无)
db.blogg.update({'id':1},{'$set':{'commet':'mm'}},false,true)
//第四个参数是true的话就更新id为1的所有的,,,【是用false挤过去的??】

删除集合

db.集合名.drop() 删除集合
db.集合名.remove() 删除集合里面的内容【没内容的集合和不存在是一样的,所以这两个是一样的】

4.查询集合内的数据 find() 【查】

db.集合名(表).find() //查表内全部信息【括号写条件】
db.集合名.find('id':1) //查id=1的(全部信息)
db.集合名.findOne() //分步查询,以多行形式展现
db.集合名.findAll() //查询,字符串形式一行展示

5.在Python中使用 MongoDB

import pymongo
client =pymongo.MongoClient('localhost',27017)
db = client.studentdb
mylist=[{'name':'学生a','年龄':'12'},{'name':'学生B','爱好':'aaa'}] #写字典格式的数据
db.user.insert_many(mylist) #将mylist里面的信息插入user集合(表)
for item in db.user.find():
print(item)

    import pymongo
#pymongo 的增删改查【精简版】
client =pymongo.MongoClient('localhost',27017)
db = client.ku1
mylist=[{'name':'学生a','年龄':'12'},{'name':'学生B','爱好':'aaa'},{'key1':'value1'}
,{'key2':'value1'},{'key3':'value1'}] #写字典格式的数据 #查询全部
# db.user.find_one(mylist)
# for item in db.user.find():
# print(item) #更新一条(没有的话就创建一个)
db.jihe1.insert_many(mylist)
db.jihe1.update({'key1':'value1'},{'$set':{'key2':'value2','key3':'vlue3'}})
# 删除
# db.jihe1.remove({'key1':'value1'}) # db.jihe1.remove() #输出结果
# for item in db.jihe1.find():
# print(item) #输出集合里面的条数
# tiaoshu = db.jihe1.find().count()
# print(tiaoshu)

MongoDB笔记2018.2.6的更多相关文章

  1. MongoDB笔记(三)启动命令mongod的参数

    上一节有关访问权限的笔记,是由启动命令mongod的参数auth引发的有关问题,这节就来看看mongod的其他参数 MongoDB启动命令mongod参数说明: 基本配置 --quiet # 安静输出 ...

  2. MongoDB笔记

    mongodb简介 MongoDB 是一个基于分布式文件存储的数据库.存储的是Bson结构的文档(二进制的JSON),内部执行引擎为JS解释器,把文档存储为BSON结构,在查询时,转换为JS对象,可以 ...

  3. 初学mongodb笔记

    先下载下mongodb,这里官网下载,https://www.mongodb.com/download-center?jmp=nav,根据自己的系统选择下载, 然后解压一下:会有这个文件夹\mongo ...

  4. YII2操作mongodb笔记(转)

    componets配置: 'mongodb' => [ 'class' => '\yii\mongodb\Connection', 'dsn' => 'mongodb://test: ...

  5. Mongodb 笔记09 备份、部署MongoDB

    备份 1. 只有在有信心能在紧急情况下完成迅速部署的情况下,备份才是有用的.所以,无论选择了哪种备份技术,一定要对备份及恢复备份的操作进行练习,知道了然于心. 2. 通常情况下,应对副本集的非主节点( ...

  6. Mongodb 笔记08 了解应用的动态、数据管理、持久性

    了解应用的动态 1. 了解正在进行的操作:db.currentOp() , 可以加过滤条件,从而只显示符合条件的结果. 1). 寻找有问题的操作:db.currentOp() 最常见的操作就是用来寻找 ...

  7. Mongodb 笔记07 分片、配置分片、选择片键、分片管理

    分片 1. 分片(sharding)是指将数据拆分,将其分散存放在不同的机器上的过程.有时也用分区(partitioning)来表示这个概念.将数据分散到不同的机器上,不需要功能强大的大型计算机就可以 ...

  8. Mongodb 笔记06 副本集的组成、从应用程序连接副本集、管理

    副本集的组成 1. 同步:MongoDB的复制功能是使用操作日志oplog实现的,操作日志包含了主节点的每一次写操作.oplog是主节点的local数据库中的一个固定集合.备份节点通过查询整个集合就可 ...

  9. MongoDB笔记--安装篇

    安装MongoDB 第一步:下载安装包:官方下载地址←单击此处,如果是win系统,注意是64位还是32位版本的,请选择正确的版本. 第二步:新建目录“D:\MongoDB”,解压下载到的安装包,找到b ...

随机推荐

  1. swoole协程通道channel

    swoole 协程通道 为了协程直接互相通讯传递数据 和go的通道很相似 Co\run(function(){ $chan = new Swoole\Coroutine\Channel(1); Swo ...

  2. go创建http服务

    Go语言这种从零开始使用到解决问题的速度,在其他语言中是完全不可想象的.学过 C++ 的朋友都知道,一到两年大强度的理论学习和实战操练也只能学到这门语言的皮毛,以及知道一些基本的避免错误的方法. 那么 ...

  3. Seaborn中几种作图方式

    趋势 sns.pointplot - 点图 ,比折线图好使 sns.lineplot - 折线图最适合显示一段时间内的趋势,多条线可以用来显示多个组中的趋势. 关系 - 可以使用许多不同的图表类型来理 ...

  4. python web自动化上传文件工具

    工具下载地址:链接:https://pan.baidu.com/s/1cHdNHW 密码:56bp说明:1.WinSpy-1.0.2.7z解压即可.2.pywin32的exe程序,根据自己安装的pyt ...

  5. IDEA2020.2版本无法开启KDE全局菜单的解决方案

    IDEA2020.2版本无法开启KDE全局菜单的解决方案 前言 :更新了2020.2之后全局菜单一直不生效,一直找不到解决的办法,就退回了2020.1,今天又试了一次,成功解决全局菜单显示问题. 之前 ...

  6. Tensorflow学习笔记No.8

    使用VGG16网络进行迁移学习 使用在ImageNet数据上预训练的VGG16网络模型对猫狗数据集进行分类识别. 1.预训练网络 预训练网络是一个保存好的,已经在大型数据集上训练好的卷积神经网络. 如 ...

  7. 安卓WebSocket使用

    引入jar包: implementation "org.java-websocket:Java-WebSocket:1.4.0"implementation "org.s ...

  8. 模型评价指标:AUC

    参考链接:https://www.iteye.com/blog/lps-683-2387643 问题: AUC是什么 AUC能拿来干什么 AUC如何求解(深入理解AUC) AUC是什么 混淆矩阵(Co ...

  9. Go之NSQ简介,原理和使用

    NSQ简介 NSQ是Go语言编写的一个开源的实时分布式内存消息队列,其性能十分优异. NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息.它具有分布式和去中心化 ...

  10. html2canvas.js——HTML转Canvas工具

    我们经常会遇上动态生成海报的需求,而在Web前端中,生成图片非Canvas莫属.但是在实际工作当中,为了追求效率,我们会不可避免地去使用一些JS插件,而html2canvas.js就是一款优秀的插件, ...