mongo 启动数据库
show dbs 查看数据库
use 数据库名 切换到当前数据库
db 查看当前数据库名称
show collections 查看集合
db.集合名.find() 查看所有数据
db.集合名.drop() 删除集合
db.dropDatabase() 删除当前数据库
import datetime
在Python中插入时间db.集合名.insert("date":datetime.datetime.now())
Python操作MongoDB
一 安装 pymongo
pip install pymongo
导入 MongoClient
from pymongo import MongoClient
二 链接MongoDB数据库
MongoDB端口号:27017
con= MongoClient("localhost"[,port=27017])
三 选择数据库三 选择数据库
db = con.数据库名
四 INSERT 数据的插入
(1) 插入一条数据
db.collection.insert(字典)
插入成功:返回ID
(2) 插入多条
db.collection.insert([{},{}])
插入成功:返回ID的列表
[ObjectId('5a1642c4b96166349c2963eb'), ObjectId('5a1642c4b96166349c2963ec')]
(3) 3.2以上的插入函数
db.collection.insert_one() 插入一条数据
db.collection.insert_many() 插入多条数据
插入成功:返回obj
(4) 3.2以上获取插入的id
resultObj.inserted_id 获取插入一条的ID
resultObj.inserted_ids 获取插入多条的ID
五 find 查询
(1) find 查询
db.collection.find()
返回的是游标对象 使用next() 方法 进行取值
(2) 按照id来进行查询
#导入 objectid
函数
from bson.objectid import ObjectId
db.user.find({"_id" : ObjectId("5a152c31fa08a5e7ad2ad094")})
(3) 模糊查询
1. $regex
2. import re re.compile()
data = db.user.find({"name":{"$regex":"五"}})data = db.user.find({"name":re.compile("五")})
注意 当匹配类型为 不是字符串的类型的时候 匹配不出来
data = db.user.find({"age":re.compile("30")})
data = db.user.find({"age":{"$regex":"3"}})
(4) sort 排序
sort(key,1) 升序
sort(key,-1) 降序
(5) limit 取值
limit(num)
(6) skip 跳过
db.user.find().skip(num)
db.user.find().skip(num).limit(num)
db.user.find().sort(key,1/-1).skip(num).limit(num)
六 update 修改
(1) db.collection.update(条件,更改后)
# data = db.user.update({"name":"潘金莲"},{"$inc":{"age":2}}) #累加修改
# data = db.user.update({"name":"潘金莲"},{"$set":{"age":2}}) #直接修改
更改成功 返回 数据:{'n': 1, 'nModified': 1, 'ok': 1.0, 'updatedExisting': True}
(2) update_one()
修改一条数据
db.collection.update_one()
# data = db.user.update_one({"name":"王五"},{"$set":{"age":20}})
(3) update_many() 修改多条数据
db.collection.update_many()
data = db.user.update_one({"name":"王五"},{"$set":{"age":20}})
(4) update_one 和 update_many 返回匹配条数和修改的条数
result.matched_count
result.modified_count
注意:
返回匹配条数
返回修改的条数
#修改多条当修改的数据 已经被修改过了 再次运行 不会再次进行修改
参数很重要!!!
update(查询条件, 更改后的数据, upsert, multi);
upsert(默认为False):
(1)upsert = True 按条件找到数据更新,找不到insert一条新数据
(2)upsert = False 按条件找到数据更新,找不到不做操作
multi(默认为false):
(1)multi = True 修改所有符合条件的数据
(2)multi = False 只修改第一条符合条件的数据
七 remove 删除
(1) remove 匹配到的全部删除
db.collection.remove({条件})
(2) delete_one 删除一条
db.collection.delete_one()
八 关闭数据库链接
con.close()
网友评论