09 mongoDB基础(进阶)
mongoDB基础
阶段一、认识mongodb
1、mongodb 组织数据的基本形式
MongoDB————》数据库————》集合————》文档
mysql:表:行和列:字段
运用场景:如 送外卖骑手的实时信息、日志、游戏人物属性、微信附近人信息
运用特征:实时变化的 QPS
数据类型:每个文档以键值对的形式储存
2、进入与退出 数据库
进入:mongo
退出:exit
阶段二、库,集合操作
1、显示所有库:shou dbs
2、切换数据库:use 数据库名称
3、查看所在库:db
4、删除库:db.dropDatabase()
5、查看当前库里面的集合:show collections
6、创建集合:db.createCollection('student')
7、删除集合:db.集合名称.drop()
阶段三、数据的增删改查操作
1、插入数据
db.集合名称.insert(document)
每一条数据,就是一个document,即 就是一条json
插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId
# 例:插入一条
db.student.insert({name:‘shiwei',age:18})
# 插入时加入id
db.student.insert({_id:10,name:‘shiwei',age:18})
# 插入多条:
db.student.insert([
{name:‘shiwei',sex:'male',age:18},
{name:'张三',sex:’female',age:30 },
{name:'李四',sex:’male',age:48 },
])
2、查询数据
db.集合名称.find()
# 查询所有:db.student.find()
# 查询所有、格式会缩进:db.student.find().pretty()
# 按条件查询:
> db.student.find({name:'zcm'})
{ "_id" : ObjectId("5b3789beccd791f53ba27b05"), "name" : "zcm", "age" : 22 }
{ "_id" : ObjectId("5b378bc6ccd791f53ba27b07"), "name" : "zcm", "age" : 22 }
> db.student.find({name:'zcm'},{age:1})
{ "_id" : ObjectId("5b3789beccd791f53ba27b05"), "age" : 22 }
{ "_id" : ObjectId("5b378bc6ccd791f53ba27b07"), "age" : 22 }
> db.student.find({name:'zcm'},{age:0})
{ "_id" : ObjectId("5b3789beccd791f53ba27b05"), "name" : "zcm" }
{ "_id" : ObjectId("5b378bc6ccd791f53ba27b07"), "name" : "zcm" }
3、更新数据
更新数据
db.集合名称.update(
<query>, (条件)
<update>,
{multi: <boolean>}
)
# 全文档更新:
db.stu.update({name:’shiwei’},{xx:’yy’ } )
# 指定属性更新,通过操作符$set,有相同的属性时,只更改一条数据
db.student.update({name:'zcm'},{$set:{age:18}})
# 更新多条: { multi: ture } 。 (前提只能指定字段更新)
db.student.update({name:'zcm'},{$set:{age:5}},{multi:true})
4、删除数据
db.集合名称. remove(
<query>, (条件)
<justOne>
)
# 只是删除 一条数据
db.student.remove({xx:'yy'},{justOne:true})
# 删除满足条件的,所有数据:
db.student.remove({name:'zcm'})
阶段四、Python操作mongodb
1、连接器(驱动)
安装python包:pip install pymongo
引入包pymongo:import pymongo
建立连接并创建客户端: client= pymongo.MongoClient('127.0.0.1',27017)
指定数据库:db=client[ 数据库名 ]
指定集合:stu=db [ 集合名]
2、主要方法
insert_one
insert_many
update_one
update_many
delete_one
delete_many
find_one
find
3、例子
import pymongo
# 建立连接
client = pymongo.MongoClient('127.0.0.1', 27017)
# 获取要操作的数据库
db = client['student']
# 获取要操作的集合
col = db['student']
data = col.find()
print(data) # 打印出了一个对象,证明连接成功了
# 插入一条数据
# col.insert_one({'name': 'zcm', 'age': 22})
# 插入多条数据
# li = [
# {'nane': 'zhangsan', 'age': 30, 'sex': 'nan'},
# {'nane': 'baby', 'age': 18, 'sex': 'nv'},
# {'nane': 'dengchao', 'age': 30, 'sex': 'nan'}
# ]
# col.insert_many(li)
# 更新一条数据
# col.update_one({'name': 'zcm'}, {'$set': {'age': 3}})
# 更新多条数据
# col.update_many({'name':'zcm'},{'$set': {'age':18}})
# 查询一条数据
# find = col.find_one()
# print(find)
# 查询多条数据 只返回对象
# find_d = col.find()
# print(find_d)
# 删除一条数据
# col.delete_one({'name':'zcm'},{'justOne':'true'})
# 删除多条数据
# col.delete_many({'name':'zcm'})
09 mongoDB基础(进阶)的更多相关文章
- 【简单易懂的AMV图文教程-2】VEGAS基础进阶——认识关键帧
[简单易懂的AMV图文教程-2]VEGAS基础进阶--认识关键帧 经过了上一期VEGAS基础教程的学习,相信大家都能独立完成一些比较简单的纯剪辑作品了.今天在这里为大家继续介绍VEGAS的一大基础应用 ...
- 老王Python培训视频教程(价值500元)【基础进阶项目篇 – 完整版】
老王Python培训视频教程(价值500元)[基础进阶项目篇 – 完整版] 教学大纲python基础篇1-25课时1.虚拟机安装ubuntu开发环境,第一个程序:hello python! (配置开发 ...
- mongodb基础用法
安装部分 mongodb配置方法 mongodb的安装目录 C:\MongoDB\Server\3.2\bin 创建以下目录 c:\mongo\log c:\mongo\db 创建mongodb的配置 ...
- mongodb基础系列——数据库查询数据返回前台JSP(一)
经过一段时间停顿,终于提笔来重新整理mongodb基础系列博客了. 同时也很抱歉,由于各种原因,没有及时整理出,今天做了一个demo,来演示,mongodb数据库查询的数据在JSP显示问题. 做了一个 ...
- MongoDB基础知识 02
MongoDB基础知识 02 6 数据类型 6.1 null : 表示空值或者不存在的字段 {"x":null} 6.2 布尔型 : 布尔类型只有两个值true和false {&q ...
- MongoDB基础知识 01
MongoDB基础知识 1. 文档 文档是MongoDB中的数据的基本单元,类似于关系型数据库管理系统的行. 文档是键值对的一个有序集.通常包含一个或者多个键值对. 例如: {”greeting& ...
- MongoDB基础教程系列--未完待续
最近对 MongoDB 产生兴趣,在网上找的大部分都是 2.X 版本,由于 2.X 与 3.X 差别还是很大的,所以自己参考官网,写了本系列.MongoDB 的知识还是很多的,本系列会持续更新,本文作 ...
- DataBase MongoDB基础知识记录
MongoDB基础知识记录 一.概念: 讲mongdb就必须提一下nosql,因为mongdb是nosql的代表作: NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型 ...
- js基础进阶--关于setTimeout的思考
欢迎访问我的个人博客:http://www.xiaolongwu.cn 先热身 看看下面的额代码会打印出什么? for (var i = 0; i < 5; i++) { setTimeout( ...
随机推荐
- Python学习系列提升篇------字符串
字符串是python学习中重要的内容,在以后的工作中,对字符串的处理也必少不了.下面总结一下关于字符串学习的经验. 1.1 字符串的连接和合并 用‘ + ’连接,将两个字符串相加. 合并, ...
- ASP.NET MVC4 with MySQL: Configuration Error (MySql.Web.v20)
今天在浏览ASP.NET项目时,提示如下错误: Could not load file or assembly ‘MySql.Web.v20, Version=6.9.4.0, Culture=neu ...
- Siebel Tools 开发笔记
1.在Siebel Client上的菜单Help -> View 中可以找到开发所常用的信息 Screen: 此画面所使用的Screen名字在Tools的Object Explorer中的[ ...
- mybatis中sql语句查询操作
动态sql where if where可以自动处理第一个and. <!-- 根据id查询用户信息 --> <!-- public User findUserById(int id) ...
- 设计模式——代理模式(Proxy Pattern)
代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问. UML图: 模型设计: Subject类: package com.cnblog.clarck; /** * Subject 类 ...
- LA 2038 最少点覆盖
题目链接:https://vjudge.net/problem/UVALive-2038 题意:我看了原题,lrj的书上题意写错了,应该是最少点覆盖,当然可以用最大匹配去做,由于是树形的: 可以树形D ...
- python nmap模块使用进行主机探测(ICMP)
终于审核通过了......第一次用博客,想记录自己的学习情况,分享知识. 废话不多说,第一篇blog,大牛请轻喷. 资产清点首先需要进行主机探测,将存活主机统计下来再进行进一步的指纹识别及端口探测.若 ...
- 宠物商城后台管理系统(springMVC+Mybatis+数据库)
mysql数据库 create database swager; use swager; #类别 create table Category( id int primary key auto_incr ...
- c++ 单继承派生类的构造函数
1.派生类的构造函数: #include <iostream> #include<string> using namespace std; class Student//声明基 ...
- MR中简单实现自定义的输入输出格式
import java.io.DataOutput; import java.io.IOException; import java.util.HashMap; import java.util.Ma ...