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)

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

  1. //insert插入数据项和数据【只能新建,不能追加和更新】
  2. ----------方式1--------------------------------------------
  3. > document=({title: 'MongoDB 教程',
  4. description: 'MongoDB 是一个 Nosql 数据库',
  5. by: '菜鸟教程',
  6. url: 'http://www.runoob.com',
  7. tags: ['mongodb', 'database', 'NoSQL'],
  8. likes: 100
  9. });
  10. //插入col这个集合中(没有就新建,有就更新)
  11. > db.col.insert(document)
  12. WriteResult({ "nInserted" : 1 })
  13. >
  14. ----------方式2--------------------------------------------
  15. > var document = db.collection.insertOne({"a": 3})
  16. > document
  17. {
  18. "acknowledged" : true,
  19. "insertedId" : ObjectId("571a218011a82a1d94c02333")
  20. }
  21. # 插入多条数据
  22. > var res = db.collection.insertMany([{"b": 3}, {'c': 4}])
  23. > res
  24. {
  25. "acknowledged" : true,
  26. "insertedIds" : [
  27. ObjectId("571a22a911a82a1d94c02337"),
  28. ObjectId("571a22a911a82a1d94c02338")
  29. ] }

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

updata()

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

save()

  1. db.collection.save(
  2. <document>,
  3. {
  4. writeConcern: <document>
  5. }
  6. )

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

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

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

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

删除集合

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

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

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

5.在Python中使用 MongoDB

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

  1. import pymongo
  2. #pymongo 的增删改查【精简版】
  3. client =pymongo.MongoClient('localhost',27017)
  4. db = client.ku1
  5. mylist=[{'name':'学生a','年龄':'12'},{'name':'学生B','爱好':'aaa'},{'key1':'value1'}
  6. ,{'key2':'value1'},{'key3':'value1'}] #写字典格式的数据
  7. #查询全部
  8. # db.user.find_one(mylist)
  9. # for item in db.user.find():
  10. # print(item)
  11. #更新一条(没有的话就创建一个)
  12. db.jihe1.insert_many(mylist)
  13. db.jihe1.update({'key1':'value1'},{'$set':{'key2':'value2','key3':'vlue3'}})
  14. # 删除
  15. # db.jihe1.remove({'key1':'value1'})
  16. # db.jihe1.remove()
  17. #输出结果
  18. # for item in db.jihe1.find():
  19. # print(item)
  20. #输出集合里面的条数
  21. # tiaoshu = db.jihe1.find().count()
  22. # 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. 接入WxPusher微信推送服务出现错误:Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

    背景 使用WxPusher微信推送服务 ,可以及时的将服务的一些运行异常信息,发送到自己的微信上,方便了解服务的运行状态(PS:这个服务是免费的). 你可以在这里看到WxPusher微信推送服务的接入 ...

  2. zookeeper动态添加/删除集群中实例(zookeeper 3.6)

    一,用来作为demo操作的zookeeper集群中的实例: 机器名:zk1 server.1=172.18.1.1:2888:3888 机器名:zk2 server.2=172.18.1.2:2888 ...

  3. centos8平台使用wkhtmltopdf实现html网页转pdf

    一,wkhtmltopdf的用途 wkhtmltopdf可以直接把任何一个可以在浏览器中浏览的网页直接转换成一个pdf 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnb ...

  4. 第二十二章 Nginx性能优化

    一.性能优化概述 1.我们需要了解 1.首先需要了解我们当前系统的结构和瓶颈,了解当前使用的是什么,运行的是什么业务,都有哪些服务,了解每个服务最大能支撑多少并发.比如nginx作为静态资源服务并发是 ...

  5. 第十二章 配置vlan

    一.vlan技术简介 1.广播风暴 广播风暴(broadcast storm)简单的讲是指当广播数据充斥网络无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪,这就发生了"广播 ...

  6. C# 采用Basic Auth传递Post或者GET 数据

    摘自:http://www.cnblogs.com/starcrm/p/4837971.html public class JiraApi{private string m_Username;priv ...

  7. 字节跳动2020Java面经,你离高薪就只差一片面试题了

    前言 经历了惨痛的春招与秋招之后,也积攒了一些面经,希望能对大家有所帮助.由于字数限制需要答案的可以关注GZH[程序员空间] 免费领取完整版PDF 其他 什什么是幂等?什什么情况下需要考虑幂等?你怎么 ...

  8. Ⅰ Introduction to Reinforcement Learning

    Dictum:  To spark, often burst in hard stone. -- William Liebknecht 强化学习(Reinforcement Learning)是模仿人 ...

  9. Disconnected from the target VM, address: '127.0.0.1:1135', transport: 'socket'-SpringBoot启动报错

    一.问题由来 本地代码在一次打包后,再次启动项目时报了一个错误,详细的错误信息如下: 2020-10-23 15:10:26.724 [] [main] INFO o.s.c.a.Annotation ...

  10. linux mount 挂载提示 mount: you must specify the filesystem type

    解决方法: mkfs.ext3 /dev/vdv mount -t ext3 /dev/vdv /usr1