MongoDB

1.介绍

将数据存为一个文档,数据结构以键值对的形式,mongoDB文档类似于json对象。
|

关系型数据库mongoDB
数据库数据库
集合
文档

2.操作

进入:mongo
退出:exit

2.1库级操作

数据库只有插入了内容才会真正创建

`show dbs                   // 显示所有库//
`db                         //显示当前库,默认进入test//
use db_name                 //切换或创建数据库//
db.dropDatabase()           //删除当前库//

2.2集合操作

创建集合后要插入一个文档,集合才会真正创建。命令对大小写敏感。

show collections                   //显示所有集合//
db.createCollection('student')          //创建集合//         
db.name.drop(name)                 //删除集合//  

2.2文档操作

每个数据就是一个document,就是一条json。

2.2.1 添加单条文档:

db.collection_name.insert(document)

如果不存在就新建,例:

db.student.insert({
	‘name’:‘zhangsan’,
	‘age’:18,
	‘sex’:man"
	})
	
//添加文档时,如果不指定_id参数,mongdb会为文档分配一个唯一的objectId//

2.2.2 添加多条文档:

db.student.insertMany([{
    	‘name’:‘zhangsan’,
    	‘age’:18,
    	‘sex’:man"
    	},{
    	‘name’:‘lisi’,
    	‘age’:19,
    	‘sex’:man"
    	}])

2.2.3 查询

db.collection_name.find(query,projection)

查询集合中所有数据:

db.collection_name.find()

格式化输出:

db.collection_name.find().pretty()

查看满足条件的数据:

db.collection_name.find({'age':18}).pretty()

projection参数
如果不指定,默认返回所有的键值对。projection参数的设置有两种模式。
模式一:

db.student.find({'age':18},{'name':1,'age':1}).pretty()

只返回name和age所对应的键值对

db.student.find({'age':18},{'name':0,'age':0}).pretty()

指定不返回name和age所对应的键值对
要么都是1,要么都是0,不能混用。_id默认返回,需要主动指定_id:0才会隐藏。

查询全部可以用{}代替quary的值,但需要指定projection.例:
db.student.find({},{_id:0})

query条件,每个条件都用{}包裹
大于:$gt
db.student.find({age:{$gt:18}})
大于或等于:$gte
小于:$lt
小于或等于:$lte
不等于:$ne

逻辑$and $or

db.student.find({$and:[{age:{$gt:18}},{sex:'man'}]})

排序 sort({key:1/-1})

db.student.find().sort({age:1})

limit(int num)
db.student.find().limit(3)

跳过 skip(int num)
默认为0

2.2.4删除

删除集合中所有文档

db.student.remove({})

删除集合中符合条件的所有文档

db.student.remove({condition})

删除集合中符合条件的第一条文档

  db.student.remove({condition},{justOne:True})

2.2.5 修改

条件修改,修改找到的第一条

db.student.update({age:18},{$set:{age:100}})

修改所有:

db.student.update({age:18},{$set:{age:100}},{multi:true})

3.pymongo

import pymongo

3.1 连接

client = pymongo.MongoClient('mongodb://localhost:27017/')

3.2 返回所有数据库

databases = client.list_database_names()

3.3 选择/创建数据库

db = client['student']

3.4 选择/创建集合

coll = db['stu']

3.4 数据crud

3.4.1查询

查所有
find()返回<pymongo.cursor.Cursor>对象,利用循环取出其中内容

res = coll.find()
	for item in res:
		print(item)

查一条

res = coll.find_one()

查询条件(和命令行一致)

res = coll.find_one({'name':'zhangsan'},{'name':1,'age':1})

limit()限制条数

res = coll.find().limit(3)
	for item in res:
		print(item)

sort()排序

res = coll.find().sort('age',1)
	for item in res:
		print(item)

3.4.2 增

插一条
res = coll.insert({‘name’:‘wanger’,‘_id’:1,‘age’:17,‘sex’:‘man’})

查多条

res = coll.insert_many([
    {'name':'huwu','_id':3,'sex':'female','age':20},
    {'name':'zhaoliu','_id':4,'sex':'male','age':26},
    {'name':'zhaoqi','_id':5,'sex':'female','age':36},
])

res.inserted_ids插入的_id值,返回一个列表。

3.4.3 删

删一条

coll.delete_one({'name':‘wanger’})

删多条

coll.delete_many({'age':20})

3.4.4 改

改一条

coll.update_one({'name':‘wanger’},{'$set':{'name':'wangsan'})

改多条

coll.update_many({'name':‘wanger’},{'$set':{'name':'wangsan'})

修改全文档

db.updata({'name':‘wanger’},{'$set':{'name':'wangsan'})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值