MongoDB

一、安装和启动

默认监听端口:27017

添加环境变量

启动:mongod --dbpath=="d:/data/db"

可视化工具:NoSQLBooster for MongoDB

 

二、介绍

mongoDB是一个NoSQL文件型数据库,非常自由,只要是JSON格式的都能存储。

数据类型:ObjectID、string、boolean、int、double、arrays、object、null、timestamp、date

objectID:前八位是时间戳,后八位是机器的机器码,后四位是进程id,后六位是计数器,这四个值拼成世上唯一的id

 

三、基本命令

在mongo中,使用了不存在的对象即创建该对象,如果这个对象是空的库或表,则先写在内存中,等有数据时再写入磁盘中。

show databases  查询本地数据库(磁盘中)
use db_name  切换当前数据库
db  查看当前使用的数据库
show tables  查看当前数据库中的表(磁盘中)

use 不存在的数据库名即创建数据库(内存中)
db.不存在的表即创建表(内存中)
# 增
db.tablename.insert({}) 
db.tablename.insert([{},{}])  插入多条
db.tablename.insertOne({})  推荐
db.tablename.isnertMany({})  推荐

# 删
db.tablename.remove({查询条件})  # 不指定条件则删除全部数据
db.tablename.deleteOne({})
db.tablename.deleteMany({}) # 改 db.tablename.
update()
db.tablename.updateOne({}.{})
db.tablename.updateMany({},{})
$关键字还用来存储当前Array符合条件的元素的下标
db.tablename.updateOne({name:"123",hobby:"睡觉"},{$set:{"hobby.$":"吃饭"}}) 可以直接把hobby列表中的睡觉改为吃饭
db.tablename.updateOne({name:"123"},{$set:{"student.name":"123"}}) 可以直接修改字典
修改都基于$修改器 $
set 强制将某字段修改,如果该字段不存在则创建 db.tablename.update({name:"123"},{$set:{name:"321"}}) $unset 清空并删除字段 db.tablename.update({name:"321"}, {$unset:{name:1}}) $inc 引用增加 db.tablename.update({name:"123"},{$inc:{age:1}}) $push $pushAll $pull $pullAll 针对Array操作,删除会删掉所有符合操作的 $pop 删除第一条或最后一条 # 查 db.tablename.find({查询条件}) db.tablename.findOne({xxx}) #返回第一条,json数据 $数字比较符,只能用于数字 $gt 大于 $lt 小于 $gte大于等于 $eq 等于 $ne 不等于 db.tablename.find({age:{$gt:70}})
$and $or
db.tablename.findOne({$and:[{条件},{条件}]})
$in $all
db.tablename.findOne({name:{$in:[1,2,3]}})

选取、跳过、排序

顺序:排序》跳过》选取(可以用来做分页)
# 排序
db.tablename.find({}).sort({age:-1})

# 跳过
db.tablename.find({}).skip(2)

# 选取
db.tablename.find({}).limit(2)

 

四、PyMongo

from pymongo import MongoClient
MC = MongoClient("127.0.0.1", 27017)
db = MC["dbname"]  # 创建或选择数据库

player_info = {
    "name": "xxx"
}

#
res = db.player.insert_one(player_info)  
res.inserted_id\res.inserted_ids  # 返回一个objectID对象,不能被序列化,但是能转换成字符串

#
res = db.player.find({})  # 返回一个列表
res = db.player.find_one({"age":{"$gt":18}})  # 返回符合条件的第一个数据,是一个字典

#
res = db.player.update_one({"name":"123"}, {"$set": {"name":"321"}})

#
from bson.objectid import ObjectId
res = db.player.delete_one({"_id":ObjectId"xxxx"})

# 排序
from pymongo import ASCENDING, DESCENGING  # 其实就是1和-1
db.player.find({}).sort("_id", ASCENGING)
res.delete_count  # 删除的数量

 

posted @ 2020-03-10 17:59  不可思议的猪  阅读(387)  评论(0编辑  收藏  举报