Mongodb

MongoDB

使用前的小插曲

  • 启动mongodb
  • mongod --dapath '数据库目录'
  • 默认端口 27017

基本操作

  • show dbs 查看所有存在磁盘上的数据库
  • show tables 查看当前数据库存在磁盘上的数据表
  • use 数据库 切换数据库 如果没有就创建
  • 数据库.表名 创建表

数据:

MongoDB:
[
{
"id":1,
"name":"jwb",
"age":73,
"hobby":["ywb","lwb"],
"duixiang":{
"id":2,
"name":"ywb",
"age":84
}
},

​ {

		"id":2,
		"name":"ywb",
		"age":84,
		"duixiang":{
			"id":1,
			"name":"jwb",
			"age":73,
		}
	}
]

数据增删改查

增加 insert

db.user.insert({'id':1, 'name':'alex','age':18})

官方推荐写法

db.user.insertOne({})

db.user.insertMany({})

查看 find

db.user.find()

db.user.findOne({})

db.user.find({'id':2, 'age':23}) 并列条件

$or : db.user.find({ $or:[{'id':2, },{'age':23}}) 或 满足一个即可

同一个字段的 或 条件

$in : db.user.find({age:{$in:[18,19,20]}})

子集检索

db.user.find({ what :{$in: [ 1, 2]}})

$all : 满足所有条件

db.user.find({what: {$all:[a,b,c]}})

更新 update 修改器 $set

db.user.update({'age':23},{$set:{'username':'wusir'}})

官方推荐写法:
db.user.updateOne({'name':"alex"},{$set:'{'age':22}'})

db.user.updateMany({'name':"alex"},{$set:'{'age':22}'})

删除 remove/delete

db.user.remove({'age': 50})

官方推荐写法:
db.user.deleteOne({'name':'alex'})

db.user.deleteMany({'name':'alex'})

$修改器:

$set : 暴力修改

$unset : 暴力删除字段

db.user.updateOne({'name':'alex},{$unset:{'hobby':1}})

$inc : 引用增加 在原有的数值上增加 正数增加,负数减少

db.user.updateMany({},{$inc:{age:1}})

array修改器:

$push 增加元素 : db.user.updateOne({'name':'alex'},{$push:{'hobby':'烫头'}})

$pull 删除元素 :db.user.updateOne({'name':'alex'},{$pop :{'hobby':抽烟}})

$ pushAll 迭代增加 : db.user.update({'name'.'alex'},{$pushAll:{'hobby':[1,2,3]}})

$pop 删除最后一条数据/第一条:

最后一条 db.user.updateOne({'name':'alex'},{$pop:{'hobby':1}})

第一条 db.user.updateOne({'name':'alex'},{$pop:{'hobby':-1}})

$ 字符

['hj','tt',1,2] {'hobby':'hj'} hj是hobby列表中的第0个元素

就把0这个数据放在了$ 中

db.user.updateMany({'hobby':'hj'},{$set:{'hobby.$':'喝酒'}})

存储符合条件的元素下标索引

object操作

db.user.updateOne({"kecheng.name":"python"},{$set:{"kecheng.price":19800}})
db.user.updateOne({"kecheng.name":"python"},{$inc:{"kecheng.price":500}})

Array中的Object

db.user.updateOne({"hobby.age":84},{$set:{"hobby.$.age":73}})

Object中的Array

db.user.updateOne({"kecheng.class":15},{$set:{"kecheng.class.$":20}})

数据类型:

ObjectID :Documents 自生成的 _id

String: 字符串,必须是utf-8

Boolean:布尔值,true 或者false (这里有坑哦~在我们大##Python中 True False 首字母大写)

Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)

Double:浮点数 (没有float类型,所有小数都是Double)

Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)

Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典

N#ull:空数据类型 , 一个特殊的概念,None Null

Timestamp:时间戳

Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)

MongoDB中的跳过选取排序:
skip(5) 跳过五条数据
limit(5) 只显示五条数据
分页 skip(5).limit(5)

sort({age:1}) 正序
sort({age:-1}) 倒序

如果三个关键字同时出现 1.sort 2.skip 3.limit

与顺序无关

pymongo:
find_one
insert_one
insert_many
update_one
update_many
delete_one
delete_many

sort("key",1)

原文地址:https://www.cnblogs.com/zzy7372/p/10278864.html