一.基本操作
. mongod 启动服务端 2. mongo 启动客户端 3. show databses 查看本地磁盘的数据库 4. use 库名 切换到要使用的数据库 5. db 查看当前使用的数据库 6. show tables 查看当前数据库存放在磁盘上的数据表 7. use 新库名 创建数据库, 当前创建的数据库没有存放在磁盘中 8. db.tablename 新表名 创建数据表,没有存放在磁盘中 ***注:
如果表中有数据,就自动保存在磁盘上
二.数据类型
ObjectId :Documents 自动生成的 _id
_id:ObjectId("5cb69a23815ea7295f8bad43") 自动生成的 json数据中不包含ObjectId类型 id类型uuid
String: 字符串,必须是utf-
Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)
Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)
Double:浮点数 (没有float类型,所有小数都是Double)
Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
Object:深度<= 如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典
Null:空数据类型 , 一个特殊的概念,None Null
Timestamp:时间戳 通常不用这个数据类型 如果存储时间 Double
Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)
① objectID
"_id" : ObjectId("5b151f8536409809ab2e6b26") #"5b151f85" 代指的是时间戳,这条数据的产生时间
#"" 代指某台机器的机器码,存储这条数据时的机器编号
#"09ab" 代指进程ID,多进程存储数据的时候,非常有用的
#"2e6b26" 代指计数器,这里要注意的是,计数器的数字可能会出现重复,不是唯一的
#以上四种标识符拼凑成世界上唯一的ObjectID
#只要是支持MongoDB的语言,都会有一个或多个方法,对ObjectID进行转换
#可以得到以上四种信息 #注意:这个类型是不可以被JSON序列化的
②插入时
③显示的数据
三.增删改查(简单版)
1.增
db.tablename.insert({"key":"value"}) 捎带手写入库和表磁盘 官方推荐写法:
db.users.insertOne({})
db.users.insertMany([{},{},{}])
2.删
db.tablename.remove({}) 删除所有数据
db.tablename.remove({age:}) 删除所有age==73的数据 官方推荐写法
db.users.deleteOne() 删除符合条件的第一条数据
db.users.deleteMany() 删除符合条件的所有数据
3.改
db.tablename.update({"name":"AlexDSB"},{"$set":{"age":}}) 只修改符合条件的一条数据
$set - set修改器 强制替换覆盖 官方推荐写法
db.tablename.updateOne() 更新符合条件的第一条数据
db.tablename.updateMany() 更新符合条件的所有数据 array+Object : db.users.updateOne({"cours.name":"装X"},{$set:{"cours.$.score":""}})
# $:指选中的下标位置
4.查
db.tablename.find() 查询符合条件的所有数据
db.tablename.find({"name":"AlexDSB"}) db.tablename.findOne() 查询符合条件的第一条数据
四.数学比较符
$lt : 小于 √
$lte: 小于等于 √
$gt : 大于 √
$gte: 大于等于 √ $ne : 不等于
$eq or 冒号 : 等于
示例:
五. $ 的高级用法
1. $ 查询关键字
Array数据类型会自动遍历
1. $in 或者(相同字段查询) db.users.find({age:{$in:[,]}})
2. $or 或者(不同字段查询) db.users.find({$or:[{age:},{hobby:"篮球"}]})
3. $and or 逗号 并列条件(两个或多个条件都要满足) 4. $all - Array数据类型 子集查询 db.users.find({hobby:{$all: ["罗玉凤"]}})
示例:
①array数据自动遍历列表
② $in
③ $or
④ $all
⑤
2. $ 修改器
$set - set修改器 强制替换覆盖
$unset - 强制删除字段
$inc - 引用增加
array操作:
$push (append) 在array中追加 db.users.update({name:"AlexDSB"},{$push:{hobby:"特斯垃圾"}})
$pushAll (extend) 在array中追加列表中的所有元素 db.users.update({name:"AlexDSB"},{$pushAll:{hobby:["22寸轮毂","V8","欧林斯"]}})
$pull (remove) 在array中删除一个元素 db.users.update({name:"AlexDSB"},{$pull: {hobby:"V8"}})
$pullAll 在array中删除一堆元素 db.users.update({name:"AlexDSB"},{$pullAll: {hobby:["小敏","芙蓉姐姐"]}})
$pop pop 删除第一个 - 或 最后一个 的值 db.users.update({name:"AlexDSB"},{$pop: {hobby:}})
示例:
①
②
3. $ 的特殊用法
存储符合条件的元素下标索引
用于修改字段
六.skip , sort , limit
1. sort 排序
db.users.find({}).sort({ age: })
db.users.find({}).sort({ age: , birthday:- }) 2. limit() 选取条目
db.users.find({}).limit() 3. skip() 跳过
db.users.find({}).skip() 4. 先排序 再跳过 最后选取(不管写的是什么顺序)
db.users.find({}).limit().skip().sort({ age:- }) 5. 分页:
(page-)*num
db.users.find({}).limit(num).skip((page-)*num)
七. pymongo基本操作
import json from pymongo import MongoClient
from bson import ObjectId # 转换 id mc = MongoClient("127.0.0.1",)
MONGODB = mc["S18day07"] #连接数据库 res = MONGODB.users.insert_one({"name":"AlexDSB"})
print(res,res.inserted_id)
# res = MONGODB.users.insert_many([{"name":"AlexDSB"},{"name":"AlexDSB"},{"name":"AlexDSB"},{"name":"AlexDSB"},{"name":"AlexDSB"}])
# print(res,res.inserted_ids) # user = MONGODB.users.find_one({"_id":ObjectId("5cb6eb7322b9441020186701")})
# print(user.get("_id"),type(user.get("_id")))
#
# user["_id"] = str(user["_id"])
# jsonstr = json.dumps(user)
# print(jsonstr , type(jsonstr)) # json 序列化
# user = list(MONGODB.users.find({}))
# for index,item in enumerate(user):
# user[index]["_id"] = str(item.get("_id"))
# print(json.dumps(user)) # MONGODB.users.update_one({"name":"AlexDSB"},{"$set":{"age":}})
# MONGODB.users.update_many({"name":"AlexDSB"},{"$set":{"age":}}) # MONGODB.users.delete_one({"age":})
# MONGODB.users.delete_many({"age":}) # MONGODB = mc["adminn"]
# res = MONGODB.users.find_one({"name":"AlexDSB"})
# res["cours"].append({"name":"路飞学城","money":"2百亿"})
# for index,cours in enumerate(res["cours"]):
# if cours.get("name") == "鸡汤":
# res["cours"][index]["score"] =
#
# MONGODB.users.update_one({"name":"AlexDSB"},{"$set":res})
八. 偷换概念
MySql MongoDB
DataBase == DataBase
Table == Collection #表
Colunm == Field #字段
Row == Documents #数据
MongoDB --- 02. 基本操作,增删改查,数据类型,比较符,高级用法,pymongo的更多相关文章
-
MongoDB的ObjectId和基本操作增删改查(3)
ObjectId 基本操作增删改查 增: insert 介绍: mongodb存储的是文档,. 文档是json格式的对象. 语法: db.collectionName.insert(document) ...
-
利用koa实现mongodb数据库的增删改查
概述 使用koa免不了要操纵数据库,现阶段流行的数据库是mongoDB,所以我研究了一下koa里面mongoDB数据库的增删改查,记录下来,供以后开发时参考,相信对其他人也有用. 源代码请看:我的gi ...
-
Mongodb--基础(连接,增删改查,数据类型)
mongodb 日常启动命令 mongod --dbpath D:\data\db 一.启动,连接 mongodb是一个非关系型数据库 1. 启动MongoDB服务: 安装时我并没有将mongodb服 ...
-
webpack4+express+mongodb+vue 实现增删改查
在讲解之前,我们先来看看效果如下所示: 1)整个页面的效果如下: 2) 新增数据效果如下: 3) 新增成功如下: 4) 编辑数据效果如下: 5) 编辑成功效果如下: 6) 删除数据效果如下: 7) 删 ...
-
nodejs对mongodb数据库的增删改查操作(转载)
首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-l ...
-
69.nodejs对mongodb数据库的增删改查操作
转自:https://www.cnblogs.com/sexintercourse/p/6485381.html 首先要确保mongodb的正确安装,安装参照:http://docs.mongodb. ...
-
python连接集群mongodb,封装增删改查
1.下载pymongo pip install pymongo 2.直接上代码 [ini配置文件] 封装读ini省略~~ [db.py] class Database(): def __init__( ...
-
web sql 基本操作 - 增删改查
不喜欢看md原文的 可以访问这个链接:http://note.youdao.com/noteshare?id=6a91e3dea7cdf5195bb0e851d9fcb5a5 # web sql 增删 ...
-
MongoDB学习之--增删改查(1)
本文是对mongodb学习的一点笔记,主要介绍最简单的增删改操作,初学,看着API,有什么错误,希望大家指正:(使用官方驱动) 1.增 增加操作是最简单的,构造bsonDcument插入即可: 方式1 ...
随机推荐
-
UOJ #58 【WC2013】 糖果公园
题目链接:糖果公园 听说这是一道树上莫队的入门题,于是我就去写了--顺便复习了一下莫队的各种姿势. 首先,我们要在树上使用莫队,那么就需要像序列一样给树分块.这个分块的过程就是王室联邦这道题(vfle ...
-
jquery实现多级下拉菜单
支持多种浏览器,体验效果:http://keleyi.com/keleyi/phtml/jqmenu/4.htm 多级菜单,理论上支持无限多的层级,文件结构非常简单的,以下是完整代码: <!DO ...
-
【原创】MySql 数据库导入导出(备份)
啥不说了,两周前刚刚做过mysql导入导出的结果现在又忘了.. 更可悲的是竟然同样的三篇blog,现在看起来还是如当初一样费劲,里面的内容..所以自己写个记录一下 环境:*nix 权限:有相关表的写读 ...
-
Catenyms
poj2337:http://poj.org/problem?id=2337 题意:给定一些单词,如果一个单词的尾字母与另一个的首字母相同则可以连接.问是否可以每个单词用一次,将所有单词连接,可以则输 ...
-
iOS 要定义自己的导航栏button样式Button Image 执行出彩是不一样的与原来的颜色 -解
在相机闪光灯,在导航栏中自己定义"闪"样式.点击变换的图像期望,但一直没有变化.原来是该条款的Global Tint颜色.因此,系统会自己主动改变图片的颜色Global Tint颜 ...
-
Muduo阅读笔记---net(三)
muduo-manual手册一开始就介绍了“Muduo是基于Reactor模式的网络库”,因此必须对Reactor模式有一定的了解才行:另外,文中还提到EventLoop,这些知识点我目前都不太了解.
-
多项式求和,素数判定 HDU2011.2012
HDU 2011:多项式求和 Description 多项式的描述如下: 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... 现在请你求出该多项式的前n项的和. Input ...
-
vue 集成 axios 发送post请求 payload导致后台无法接收到数据问题
vue 集成axios之后,发送的post请求默认为payload 方式. 如果想改为正常的方式,需要增加headers头,并且将发送是数据json格式改为 querystring的方式. 安装依赖 ...
-
MyBatis报错:Caused by: java.lang.NumberFormatException: For input string: ";XX";
<select id="sltTreatment" resultType="com.vitaminmd.sunny.core.bo.Treatment"& ...
-
Unity5 BakeGI(Mixed Lighting)小记
1.模型需勾选Generate Lightmap UVs,否则烘培图像撕裂. 2.关于为何新版的改叫Mixed Lighting,猜测是之前属于全部烘培,现在算是部分烘培,实时阴影和烘培阴影可以混用, ...