MongoDB
库操作
进入
mongo
退出
exit
切换/创建库 有就切换没有就新增
use 库名
查所有
show dbs
库的所在位置
db
删除库
db.dropDatabase()
集合操作
创建集合
db.createCollection('stu')
查看当前数据库的集合
show collections
删除集合
db.stu.drop()
文档操作
增
插入一条
语法
db.集合名称.insert(文档)
实例
db.stu.insert({'_id':3,name:'小明',age:18})
插入多条
语法
db.集合名称.insert([
一条文档,
二条文档,
三条文档
])
实例
db.stu.insert([
{name:'小白',sex:'男',age:18},
{name:'小黄',sex:'男',age:18},
{name:'小红',sex:'女',age:16},
])
查
一般整体查询
语法
db.集合名称.find()
实例
db.stu.find()
美式整体查询
语法
db.集合名称.find().pretty()
实例
db.stu.find().pretty()
指定查询
语法
db.集合名称.find(某个文档)
实例
db.stu.find({name:'小明'})
筛选
语法
db.集合名称.find({某个文档的key:values为1代表显示/values为0代表不显示})
实例
查询小明的年龄
db.stu.find({name:'小明'},{age:1})
查询小明的名字
db.stu.find({name:'小明'},{age:0})
逻辑运算符
and 与
or 或
比较运算符
gt 大于
lt 小于
gte 大于或等于
lte 小于或等于
ne 不等于
语法
{$and:[包含多个条件]}
{$or:[包含多个条件]}
实例
性别女,并且年龄为16岁
db.stu.find({$and:[{sex:'女'},{age:16}]})
查询条件1或条件2的数据
db.stu.find({$or:[
{$and:[{sex:'女'},{age:16}]},
{$and:[{sex:'男'},{age:{$gte:18}}]}
]})
改
只会修改一条数据 并且其他字段也没有了(删掉)
db.stu.update({name:'小红'},{name:'小红红红'})
只会修改一条数据 并且其他字段保留
db.stu.update({name:'小白'},{$set:{age:66}})
修改多条数据并且其他字段保留
db.stu.update({name:'小黄'},{$set:{age:66}},{multi:true})
删
只删除符合条件的一条数据
db.stu.remove({age:66},{justOne:true})
只删除符合条件的所有数据
db.stu.remove({age:16})
删除所有数据
db.stu.remove({})
pymongo
封装一个pymongo类,方便调用
import pymongo
class MyMongoDB:
# 初始化链接库
def __init__(self,database,collection):
self.client = pymongo.MongoClient('127.0.0.1',27017)
# 指定数据库
self.db = self.client[database]
# 指定集合
self.collection = self.db[collection]
# 插入数据
def insert(self,*values):
if len(values) == 1:
self.collection.insert_one(values[0])
else:
self.collection.insert_many(list(values))
# 修改数据
def update(self,data,new_data,m=False):
if m:
self.collection.update_many(data,{'$set':new_data})
else:
self.collection.update_one(data,{'$set':new_data})
# 删除数据
def delete(self,data,m=False):
if m:
self.collection.delete_many(data)
else:
self.collection.delete_one(data)
# 查询数据
def find(self,data={},m=False):
if m:
result = self.collection.find(data)
for i in result:
print(i)
else:
result = self.collection.find_one(data)
print(result)
if __name__ == '__main__':
a = MyMongoDB('mydbA6','stu')
print(a)
# 插入一个数据
a.insert({'name':'dahai1'})
# 插入多个数据
a.insert({'name':'dahai2'},{'name':'dahai3'})
# 修改多条数据
a.update({'name':'dahai2'},{'name':'dahai2222'})
# 修改多条数据
a.update({'name':'dahai2'},{'name':'dahai2222'},True)
# 删除指定的一条数据
# a.delete({'name':'dahai2222'})
# 删除指定的多条数据
# a.delete({'name':'dahai2222'},True)
# 删除全部
# a.delete({},True)
# 查找一个数据
a.find({'name':'dahai1'})
# 查找全部数据
a.find({}, True)