MongoDB数据库基础
MongoDB端口号:27017
1. 基本操作
mongo # linux下打开mongodb
# mongodb --dbpath 存放数据的地址
exit # 退出mongodb
2. 库级操作
use 数据库名 # 有则进入,无则创建
db # 查看当前所在的数据库
show dbs # 查看所有数据库,数据库中没有数据的不会显示
db.dropDatabase() # 删除库
3.集合操作
db.createCollection("集合名") # 创建集合
show collections # 查看数据库中有哪些集合
db.集合名.drop() # 删除该集合
4. 文档操作
db.集合名.insert({key1:value1,key2:value2}) # 添加文档,其中key可以有或者无双引号,value字符必须有双引号
db.集合名.insert({["_id":地址],"key1":"value1"...}) # 添加文档,当有_id时以自己的id,无则以计算机自己创建的id来
db.集合名.insert([{["-id":指定地址],"key1":"value1",....},{["-id":指定地址],"key1":"value1",....},....]) # 添加多条文档
db.集合名.find() # 查看该集合下面的所有文档
db.集合名.find().pretty() # 格式化查看集合下面的所有文档
db.集合名.find({查询条件}) # 以条件查询结果
db.集合名.find({条件1(key1:value1),条件2(key2:value2)}) # 添加多个条件查询
db.集合名.find({$and:[{条件1(key1:value1)},{条件2(key2:value2)},...]}) # and且条件查询
db.集合名.find({$or:[{条件1(key1:value1)},{条件2(key2:value2)},...]}) # or或条件查询
db.集合名.find({key:{$ne:value}}) # ne 非条件查询
db.集合名.update(
<query>--{key1:value1},
<update>--{$set:{key2:value2}},
{upsert:<boolean>--,
multi:<boolean>,
writeConcern:<document>
}
) # 根据满足条件的来更新数据,更新满足键为key1值得数据,改为key2键值
# query:查询条件
# update:更新对象和一些更新操作符
# upsert:(添加)如果不存在update的记录则True:插入,False:不插入
# mulit:(更新)默认为Flase,只更新1条记录,若为True则更新全部满足条件的记录
# writeConcert:可选,抛出异常等级"
db.集合名.update({key1:value1},{$set:{key2:value2}},[{upsert:True/False},{multi:True/False}]) # 更新的具体格式
db.集合名.update({key1:value1},{$set:{key2:value2,key2:value2....}}[{upsert:True/False},{multi:True/False}]) # 指定数据修改 upsert用法不明
db.集合名.update({key1:value1},{key1:value2}) # 修改整条数据(覆盖),但是修改完后的数据只会有{key1:value2}
db.集合名.remove({}) # 删除该集合内的所有文档全部删除
db.集合名.remove(
<query>--{key1:value1},
{justOne:<boolean>--,}
) # 根据满足条件的来删除数据,删除满足键为key1值得数据
# query:查询条件
# justOne:True则删除满足的第1条文档,False则删除全部满足条件的文档"
db.集合名.remove({key1:value1},{justOne:True/False}) # 删除的具体格式
4. pycharm链接MongoDB数据库
import pymongo # 导入模块
client = pymongo.MongoClient("127.0.0.1",27017) # 链接地址为。。。端口号为27017
db = client["数据库名"] # 链接该数据库名
data = db[集合名] # 选中该集合
data.find(条件) # 查询,返回是一个生成器,多条
data.find_one() # 查询,返回是一个生成器,1条
data.insert(文档) # 添加,多条
data.insert_one(文档) # 添加一条
data.update() # 更新文档多条
data.update_one() # 更新文档1条
data.remove() # 删除文档所有满足条件的
data.remove_one() # 删除文档1条