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+命令行的主要内容,如果未能解决你的问题,请参考以下文章

Python 数据库骚操作 — MongoDB

Python操作MongoDB数据库

MongoDB操作

MongoDB 2高级操作

python | mongodb 常用命令

如何从命令行删除 MongoDB 集合?