mongodb数据库操作 python+命令行
Posted 51python
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb数据库操作 python+命令行相关的知识,希望对你有一定的参考价值。
一、python操作
from bson.objectid import ObjectId import pymongo client1 = pymongo.MongoClient(host=‘localhost‘, port=27017) from pymongo import MongoClient client2 = MongoClient(‘mongodb://localhost:27017/‘) ‘‘‘ 两种方式都行 ‘‘‘ ‘‘‘ 指定数据库 ‘‘‘ db = client1.test db2 = client1[‘test‘] ‘‘‘ 指定集合 ‘‘‘ collection = db.students collection2 = db[‘students‘] ‘‘‘ 指定要插入的数据 ‘‘‘ student = { ‘id‘: ‘20170101‘, ‘name‘: ‘Jordan‘, ‘age‘: 20, ‘gender‘: ‘male‘ } student2 = { ‘id‘: ‘20170202‘, ‘name‘: ‘Mike‘, ‘age‘: 21, ‘gender‘: ‘male‘ } ‘‘‘ 保存(可以插入多条) 结果返回id集合 ‘‘‘ result = collection.insert(student) print(result) result = collection.insert([student, student2]) print(result) #=====================================================官方推荐===================================== result = collection.insert_one(student) print(result) print(result.inserted_id) result = collection.insert_many([student, student2]) print(result) print(result.inserted_ids) ‘‘‘ ================================================================查询=============================== ‘‘‘ #单条查询 result = collection.find_one({‘name‘: ‘Mike‘}) print(type(result)) print(result) #根据id查询 result = collection.find_one({‘_id‘: ObjectId(‘593278c115c2602667ec6bae‘)}) print(result) #多条查询 results = collection.find({‘age‘: 20}) print(results) for result in results: print(result) #查询年龄大于20 results = collection.find({‘age‘: {‘$gt‘: 20}}) # $lt 小于 # # $gt 大于 # # $lte 小于等于 # # $gte 大于等于 # # $ne 不等于 # # $in 在范围内 # # $nin 不在范围内 #利用正则 #查询以m开头的 results1 = collection.find({‘name‘: {‘$regex‘: ‘^M.*‘}}) # 符号 含义 示例 示例含义 # # $regex 匹配正则表达式 {‘name‘: {‘$regex‘: ‘^M.*‘}} name以M开头 # # $exists 属性是否存在 {‘name‘: {‘$exists‘: True}} name属性存在 # # $type 类型判断 {‘age‘: {‘$type‘: ‘int‘}} age的类型为int # # $mod 数字模操作 {‘age‘: {‘$mod‘: [5, 0]}} 年龄模5余0 # # $text 文本查询 {‘$text‘: {‘$search‘: ‘Mike‘}} text类型的属性中包含Mike字符串 # # $where 高级条件查询 {‘$where‘: ‘obj.fans_count == obj.follows_count‘} 自身粉丝数等于关注数 ‘‘‘ ===========================================================统计================================== ‘‘‘ count = collection.find().count() print(count) # 或者统计符合某个条件的数据: count = collection.find({‘age‘: 20}).count() print(count) ‘‘‘ ===========================================================排序================================== 升序 pymongo.ASCENDING 降序 pymongo.DESCENDING ‘‘‘ results11 = collection.find().sort(‘name‘, pymongo.ASCENDING) print([result[‘name‘] for result in results]) #跳过两个 取两个 results = collection.find().sort(‘name‘, pymongo.ASCENDING).skip(2).limit(2) print([result[‘name‘] for result in results]) ‘‘‘ ===========================================================修改================================== ‘‘‘ condition = {‘name‘: ‘Kevin‘} student = collection.find_one(condition) student[‘age‘] = 25 result = collection.update(condition, student) print(result) #推荐 condition = {‘name‘: ‘Kevin‘} student = collection.find_one(condition) student[‘age‘] = 26 result = collection.update_one(condition, {‘$set‘: student}) print(result) print(result.matched_count, result.modified_count) #返回结果----匹配的数据条数和影响的数据条数 condition = {‘age‘: {‘$gt‘: 20}} result = collection.update_one(condition, {‘$inc‘: {‘age‘: 1}}) print(result) print(result.matched_count, result.modified_count) condition = {‘age‘: {‘$gt‘: 20}} result = collection.update_many(condition, {‘$inc‘: {‘age‘: 1}}) print(result) print(result.matched_count, result.modified_count) ‘‘‘ ===========================================================删除================================== ‘‘‘ result = collection.remove({‘name‘: ‘Kevin‘}) print(result) #推荐 result = collection.delete_one({‘name‘: ‘Kevin‘}) print(result) print(result.deleted_count) result = collection.delete_many({‘age‘: {‘$lt‘: 25}}) print(result.deleted_count)
二、命令行
# 命令操作 ‘‘‘ 1、显示当前数据库服务上的数据库 show dbs; 2、切换到指定的数据库进行操作 use mydb 3、显示当前数据库的所有集合(collections) show collections; 4、查看数据库服务的状态 db.serverStatus(); 5、查询指定数据库的统计信息 use admin db.stat() 6、查询指定数据库包含的集合名称列表 use test1 db.getCollectionNames() 7、统计集合记录数 db.test1.count() 8、统计指定条件的记录数 db.test1.find({"name":"yunweicai"}).count() 9、查询指定数据库的集合当前可用的存储空间 db.test1.storageSize() 10、查询指定数据库的集合分配的存储空间 db.test1.totalSize() 1、创建数据库 不需要什么create database的命令,只要使用use命令就可以创建数据库 use test1 2、删除数据库 use test1 db.dropDatabase() 3、创建集合 可以使用命令db.createCollection(name, { size : ..., capped : ..., max : ... } )创建集合 也可以直接插入一个数据库就直接创建了 db.test1.insert({"name":"mongodb","user":"opcai"}) 4、删除集合 db.test1.drop() 5、插入记录 db.test1.save({"name":"yunweicai"}) 或者 db.test1.insert({"name":"mongodb","user":"opcai"}) 6、查询记录 db.test1.find() find()里面可以指定多个条件进行查询,如果为空,就查询所有的数据 7、删除记录 db.test1.remove({"name":"yunweicai"}) 需要指定一个条件,没有条件是不允许删除操作的。 ‘‘‘
参考:
https://www.cnblogs.com/aademeng/articles/9779271.html
https://baijiahao.baidu.com/s?id=1612042780837847633&wfr=spider&for=pc
以上是关于mongodb数据库操作 python+命令行的主要内容,如果未能解决你的问题,请参考以下文章